提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目的
提示:这里可以添加本文要记录的大概内容:
在WPS的自定义功能区添加面板
执行指定宏命令
弹出工作表拆分对话窗口
提示:以下是本篇文章正文内容,下面案例可供参考
一、创建宏…xlam文件实现弹出设置窗口并执行拆分
1.创建窗体FORM_表格拆分
- 窗体名:FORM_表格拆分
- 表头:startrow
- 结束行:endrow
- 关键字:keycolumn
- 使用关键字:optionkey
2.显示窗体并设置控件初始值
Sub splitsheet(control As IRibbonControl) '括号内 允许 从自定义功能区调用
' Macro1 Macro
' 宏由 Administrator 录制,时间: 2022/05/24
'
'按关键字列拆分表格
'列内可以有空格,组合单元格
'关键字作为表名会清除 :、/?*[]并只返回前20个字符
colarray = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD")
endrow = LASTROW("A")
For k = 1 To 10
ENDROW1 = LASTROW(colarray(k))
If endrow < ENDROW1 Then endrow = ENDROW1
Next
For i = 1 To endrow + 10
FORM_表格拆分.startrow.AddItem (i)
FORM_表格拆分.endrow.AddItem (i)
Next
FORM_表格拆分.startrow.Text = 1
FORM_表格拆分.endrow.Text = endrow
For i = 0 To 29
Content = "【" & colarray(i) & "】" & Cells(1, i + 1)
FORM_表格拆分.keycolumn.AddItem (Content)
Next
FORM_表格拆分.keycolumn.ListIndex = 4
FORM_表格拆分.Show 0
End Sub
3.函数获取最后一行
Function LASTROW(COLNAME)
endrow = ActiveSheet.Range(COLNAME & Rows.Count).End(xlUp).Row
For i = endrow To 1 Step -1
If Range(COLNAME & i).value <> "" Then
endrow = i
Exit For
End If
Next
LASTROW = endrow
End Function
4.执行表格拆分
Function sheetsplit()
On Error GoTo l_err
stime = Timer
' On Error Resume Next
Application.ScreenUpdating = False
sheet_total_name = ActiveSheet.Name
firstrow = FORM_表格拆分.startrow.value + 1
endrow = FORM_表格拆分.endrow.value
keycolumn = FORM_表格拆分.keycolumn.ListIndex + 1
Range(Cells(firstrow, keycolumn), Cells(endrow, keycolumn)