如何运行VBA代码?其实很简单,举个例子。
比如下面这段代码,作用是合并多个工作表数据成总表。
Sub CollectData()
Dim Sht As Worksheet, rng As Range, k&, n&
Application.ScreenUpdating = False '取消屏幕刷新
n = Val(InputBox("请输入标题的行数", "提醒"))
If n < 0 Then MsgBox "标题行数不能为负数。", 64, "提示": Exit Sub
'取得用户输入的标题行数,如果为负数,退出程序
Cells.ClearContents '清空当前表数据
For Each Sht In Worksheets '遍历工作表
If Sht.Name <> ActiveSheet.Name Then
'如果工作表名称不等于当前表名则进行汇总动作……
Set rng = Sht.UsedRange '定义rng为表格已用区域
k = k + 1 '累计表的个数
If k = 1 Then '如果是首个表格,则把标题行一起复制到汇总表
rng.Copy
Cells(1, 1).PasteSpecial Paste:=xlPasteValues
Else '否则,扣除标题行后再复制黏贴到总表
rng.Offset(n).Copy
Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1) _
.PasteSpecial Paste:=xlPasteValues
End If
End If
Next
Cells(1, 1).Activate
Application.ScreenUpdating = True '恢复屏幕刷新
MsgBox "一共汇总了" & k & "张工作表。"
End Sub
操作步骤如下:
▎1,<Ctrl+C>完整复制代码。
▎2,打开目标Excel工作簿,右键单击任意工作表名称,执行右键菜单的【查看代码】命令,或者按<ALT+F11>组合键,打开VBE窗口。
▎3,在VBE窗口界面,右键单击左侧任意工作表名称,例如下图所示的Sheet1,在弹出的选项菜单中,依次单击【插入】→【模块】
▎4,单击选中新建的模块,在右侧代码窗口粘贴代码,然后关闭该窗口
到这一步,我们就将代码粘贴到VBE编辑器了,下一步就是运行它。
运行代码有多种方式,如果你只需要运行一次,鼠标点击代码任何一处,然后按功能键<F5>即可。
如果你需要在当前工作簿多次运行相关代码,则最好是制作一个命令按钮,操作过程参考以下步骤
▎5,在工作表的【插入】选项卡下,依次单击【形状】→【矩形】在当前工作表绘制一个大小任意你满意就好的矩形。
▎6,右键单击该矩形,在弹出的菜单中选择【指定宏】命令。打开【指定宏】对话框,选择目标宏名,例如本例的CollectData,最后单击【确定】按钮。
▎7,OK,单击该矩形形状,就可以运行小代码了。
需要注意的是,系统默认的xlsx工作簿格式,会自动抹除VBA代码——换句话说,如果你需要多次运行VBA,务必将文件另存为宏文件xlsm格式。
技术交流,软件开发,欢迎微信沟通: