2024年4月27日发(作者:)

常用VBA语句

(1) Option Explicit '强制对模块内所有变量进行声明

(2) Option Base 1 '指定数组的第一个下标为1

(3) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息

(4) On Error GoTo 100 '当错误发生时跳转到过程中的某个位置

(5) On Error GoTo 0 '恢复正常的错误提示

(6) yAlerts=False '在程序执行过程中使出现的警告框不显示

(7) yAlerts=True '在程序执行过程中

(8) Updating=False '关闭屏幕刷新

(9) Updating = True '打开屏幕刷新

(10) () '创建一个新的工作簿

(11) Workbooks(“”).Activate '激活名为book1的工作簿

(12) '保存工作簿

(13) '关闭当前工作簿

(14) '获取活动工作薄中工作表数

(15) '返回活动工作薄的名称

(16) ‘返回当前工作簿名称

(17) me ‘返回当前工作簿路径和名

(18) (18) ‘当前工作表中已使用的行数

(19) ‘获取工作表的行数(注:考虑兼容性)

(20) Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum

(21) Before:=Worksheets(1) '添加一个新工作表在第

一工作表前

(22)

After:=() '将当前工作表移至

工作表的最后

(23) Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作

表2

(24) Sheets(“sheet1”).Delete或 Sheets(1).Delete '删除工作表1

(25) ‘删除当前工作表中所有

的条件格式

(26) ‘取消当前工作表所有超链接

(27) 选择当前活动单元格所包含的范围,上下左

右无空行

(28) ‘选定当前工作表的所有单元格

(29) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的

ontents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至

D4单元格区域的内容,包括格式

(30) '清除工作表中所有单元格的内容

(31) (1,0).Select '活动单元格下移一行,同理,可下移一列

(32) Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中

(33) Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始

的区域中

(34) Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单

元格F1开始的区域中

(35) Range(“A1”). Sheets(“Sheet2”).Range(“A1”) '

复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion

属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列

(36) '活动窗口中选择的单元格数

(37) '当前选中区域的单元格数

(38) Range(“A1”).ndex ‘获取单元格A1背景色

(39) ‘返回当前工作表的单元格数

(40) Range(“B3”).Resize(11, 3)

(41) Union(Range(“A1:A9”),Range(“D1:D9”)) 区域连接

(42) Intersect(Range(“A1:B9”),Range(“A1:D9”))) ‘返回的交叉区域

(43) ‘当前选中的单元格区域中的列数

(44) ‘当前选中的单元格区域中的行数

(45) ‘获取单元格区域中使用的第一行的行号

(46) er(“A1”) '使用工作表函数检查A1

单元格中的数据是否为数字

(47) Range(“A:A”).Find((Range(“A:A”)

)).Activate'激活单元格区域A列中最大值的单元格

(48) MsgBox “Hello!” '消息框中显示消息Hello

(49) Ans=MsgBox(“Continue?”,vbYesNo) '在消息框中点击“是”按钮,则Ans

值为vbYes;点击“否”按钮,则Ans值为vbNo。

(50) ‘显示用户窗体

(51) Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态

(52) ‘隐藏用户窗体

(53) Unload Userform1 或 Unload Me ‘卸载用户窗体

(54) 0‘将窗体设置为无模式状态

(55) Events=False '禁用所有事件

(56) Events = True '启用所有事件

(57) Set d = CreateObject(nary) ‘创建一个 Dictionary 对象变

(58) "a", "Athens" '为对象变量添加关键字和条

(59) “^I”,”macro” '设置Ctrl+I键为macro过程的快捷

(60) yMode=False ‘退出剪切/复制模式

(61) le True '无论何时工作表中任意单元格重新计算,都会强制

计算该函数

(62) le False '只有在该函数的一个或多个参数发生改变时,才会

重新计算该函数

(63) ‘清除程序运行过程中所有的错误

(64) ‘关闭所有打开的工作簿

(65) ‘返回当前工作簿的路径(注:若工作簿未保存,则为空)

(66) ‘返回工作簿的存储值(若已保存则为False)

(67) e = False ‘隐藏工作簿

(68) e = True ‘显示工作簿

(69) s("B").Insert ‘在A列右侧插入列,即插入B列

(70) s("E").Cut

(71) s("B").Insert 70,71两句将E列数据移至B列,原B列

及以后的数据相应后移

(72) ate ‘计算当前工作表

(73) eets(“sheet1”).Visible=xlSheetHidden ‘正常隐

藏工作表,同在Excel菜单中选择“格式——工作表——隐藏”操作一样

(74) eets(“sheet1”).Visible=xlSheetVeryHidden ‘隐

藏工作表,不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工

(75) eets(“sheet1”).Visible=xlSheetVisible ‘显示被隐

藏的工作表

(76) (1).ProtectContents ‘检查工作表是否受到保护

(77)

Before:=eets(2) 或

Count:=2,

eets(2), , 2 ‘在第二个工作表之前添加两个新的工作表

(78) eets(3).Copy ‘复制一个工作表到新的工作簿

(79) eets(3).Copy eets(2) ‘复制

第三个工作表到第二个工作表之前

(80) eets(1).Activate ‘当前工作簿中的第一个工作表被激

(81) eets("Sheet1").Rows(1).Hidden = True ‘将工作表

Sheet1中的1隐藏

(82) = True ‘将当前工作表中活动单元格所在的行

隐藏

(83) (“A:A”).t ‘自动调整当前工作表A

列列宽

(84) lCells(xlCellTypeConstants,xlTextValues) ‘选中当

前工作表中常量和文本单元格

(85) lCells(xlCellTypeConstants,xlErrors+xlTextValues)

‘选中当前工作表中常量和文本及错误值单元格

(86) (Range(“A:A”))+1 ‘获取A列的

下一个空单元格

(87) Set FirstCell=Range().Range(“A1”) ‘设置某单元格区域左上

角单元格

(88) Now + TimeValue("00:00:15"), "myProcedure" ‘等待

15秒后运行myProcedure过程

(89) Application对象

(90) me ‘返回应用程序的用户名

(91) ‘返回调用函数的工作簿名称

(92) Bar=”请等待……” ‘将文本写到状态栏

(93) Bar=False ‘将状态栏重新设置成正常状态

(94) ose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”

Fri”,”Sat”)) ‘返回一个垂直的数组

(95) s ‘返回活动单元格的地址(注:返回的是绝对地

址)

(96) ‘返回活动工作表的名称

(97) n ‘返回活动窗口的标题

(98) ‘返回活动工作簿的名称

(99) s ‘返回所选区域的地址

(100) ‘返回当前工作簿的名称

(101) Range(A1:A10).Value=ose(MyArr

ay) ‘将一含有10个元素的数组转置成垂直方向的工作表单元格区域(A1至A10)注:因

为当把一维数组的内容传递给某个单元格区域时,该单元格区域中的单元格必须是水平方

向的,即含有多列的一行。若必须使用垂直方向的单元格区域,则必须先将数组进行转置,

成为垂直的。

(102) Cells(,1).End(xlUp).Row+1 ‘返回A列最后一行的下一行

(103) (“A1”) ‘返回区域左上角的单元格

(104) ("A:B").Sort Key1:=Columns("B"), Key2:=Columns("A"),

Header:=xlYes ‘两个关键字排序,相邻两列,B列为主关键字,A列为次关键字,升序

排列

(105) (“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元

格是否含有公式或mula ‘工作表中单元格是否含有公式

(106) Column ‘单元格所在的整列

(107) Row ‘单元格所在的整行

(108) s ‘返回rng区域的地址

(109) Range(“D5:D10”).Cells(1,1) ‘返回单元格区域D5:D10中左上角单元格

(110) ‘活动单元格所在的行数

(111) ‘活动单元格所在的列数

(112) Set MyRange=Range(“A1:A5”) ‘创建一个名为MyRange的对象变量

(113) ation = xlCalculationManual ‘设置工作簿手动计算

(114) ation = xlCalculationAutomatic ‘工作簿自动计算

(115) Worksheets(1).EnableCalculation = False ‘不对第一张工作表自动进行重算

(116) ture "d:", True, True, 60, 20, 400, 300 '

在当前工作表中插入一张d盘中名为sx的图片