vba能运行在linux上吗,如何运行VBA代码?其实很简单
HI,大家好,我是星光。话说我们有一个完整的VBA小代码系列,包含了多表汇总,总表拆分,图片导入等常见问题处理。后台回复关键字常用代码即可获取。但总会有朋友询问VBA代码如何使用,这里就先聊一下。举个例子。比如下面这段代码,作用是合并多个工作表数据成总表。Sub CollectData() Dim Sht As Worksheet, rng As Range, k&, n& App
HI,大家好,我是星光。话说我们有一个完整的VBA小代码系列,包含了多表汇总,总表拆分,图片导入等常见问题处理。后台回复关键字常用代码即可获取。但总会有朋友询问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,完整复制代码。
▎2,打开目标Excel工作簿,右键单击任意工作表名称,执行右键菜单的【查看代码】命令,或者按组合键,打开VBE窗口。
▎3,在VBE窗口界面,右键单击左侧任意工作表名称,例如下图所示的Sheet1,在弹出的选项菜单中,依次单击【插入】→【模块】
▎4,单击选中新建的模块,在右侧代码窗口粘贴代码,然后关闭该窗口
▎5,在工作表的【插入】选项卡下,依次单击【形状】→【矩形】在当前工作表绘制一个大小任意你满意就好的矩形。
▎6,右键单击该矩形,在弹出的菜单中选择【指定宏】命令。打开【指定宏】对话框,选择目标宏名,例如本例的CollectData,最后单击【确定】按钮。
▎7,OK,单击该矩形形状,就可以运行小代码了。
……
没了,祝大家周末愉快,下期再见。
更多推荐
所有评论(0)