【Excel】VBA常用单词和语法
Sub 开始
End结束
Range单元格,单元格区域
Msgbox 输出函数
Inputbox输入函数
Cells所有单元格
Sheets工作表集合
Worksheets工作表集合
Workbooks工作簿集合
Thisworkbook: 代码所在的工作簿
Activeworkbook活动工作簿
Ativecell活动单元格
Dim定义变量关键字
Redim重新定义变量关键字
Integer整型,简写 %
Long 长整型,简写&
Single单精度 简写!
Double 双精度 简写#
String字符串型 $
Variant 变体型,有的叫做万能型,如果不定义就是这个变体型
Object 对象
Usedrange 用过的区域
Union 联合
Intersect 交叉
Resize 重新定义区域大小
CurrentRegion:相连的
Value 值
Call呼叫
Visible可见性
Rows所有的行
Columns 所有列
Createobject引用动态库文件函数
Dictionary 字典
Regexp 正则
Application Excel里最高对象
Format格式函数
Timer记时器
WorksheetFunction工作表函数
Transpose工作表里的转置函数
Add添加
Before前面
After 后面
Key关键字
Item条目对
Remove清空
Removeall清空所有
Exists存在
Count点数
Array数组函数
Preserve保存
Ubound 上界
Lbound下界
Erase清空数组
Split 分割
Join 连接,组合
Filter筛选
Index 工作表引用函数
Function函数
Volatile易失性
ColorIndex颜色索引
Interior底纹
Font字体
Show显示
Unload关闭窗体
Onkey按钮事件
Ontime事件
Delete删除
Open打开
SaveSs保存
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) Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示
(7) Application.DisplayAlerts=True '在程序执行过程中
(8) Application.ScreenUpdating=False '关闭屏幕刷新
(9) Application.ScreenUpdating = True '打开屏幕刷新
(10) Workbooks.Add() '创建一个新的工作簿
(11) Workbooks(“book1.xls”).Activate '激活名为book1的工作簿
(12) ThisWorkbook.Save '保存工作簿
(13) ThisWorkbook.close '关闭当前工作簿
(14) ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数
(15) ActiveWorkbook.name '返回活动工作薄的名称
(16) ThisWorkbook.Name '返回当前工作簿名称
(17) ThisWorkbook.FullName '返回当前工作簿路径和名
(18) (18) ActiveSheet.UsedRange.Rows.Count '当前工作表中已使用的行数
(19) Rows.Count '获取工作表的行数(注:考虑兼容性)
(20) Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum
(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前
(22) ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后
(23) Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2
(24) Sheets(“sheet1”).Delete或 Sheets(1).Delete '删除工作表1
(25) ActiveSheet.UsedRange.FormatConditions.Delete '删除当前工作表中所有的条件格式
(26) Cells.Hyperlinks.Delete '取消当前工作表所有超链接
(27) ActiveCell.CurrentRegion.Select选择当前活动单元格所包含的范围,上下左右无空行
(28) Cells.Select '选定当前工作表的所有单元格
(29) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的Selection.ClearContents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式
(30) Cells.Clear '清除工作表中所有单元格的内容
(31) ActiveCell.Offset(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”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列
(36) ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数
(37) Selection.Count '当前选中区域的单元格数
(38) Range(“A1”).Interior.ColorIndex '获取单元格A1背景色
(39) cells.count '返回当前工作表的单元格数
(40) Range(“B3”).Resize(11, 3)
(41) Union(Range(“A1:A9”),Range(“D1:D9”)) 区域连接
(42) Intersect(Range(“A1:B9”),Range(“A1:D9”))) '返回的交叉区域
(43) Selection.Columns.Count '当前选中的单元格区域中的列数
(44) Selection.Rows.Count '当前选中的单元格区域中的行数
(45) ActiveSheet.UsedRange.Row '获取单元格区域中使用的第一行的行号
(46) Application.WorksheetFunction.IsNumber(“A1”) '使用工作表函数检查A1单元格中的数据是否为数字
(47) Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate'激活单元格区域A列中最大值的单元格
(48) MsgBox “Hello!” '消息框中显示消息Hello
(49) Ans=MsgBox(“Continue?”,vbYesNo) '在消息框中点击“是”按钮,则Ans值为vbYes;点击“否”按钮,则Ans值为vbNo。
(50) Userform1.Show '显示用户窗体
(51) Load Userform1 '加载一个用户窗体,但该窗体处于隐藏状态
(52) Userform1.Hide '隐藏用户窗体
(53) Unload Userform1 或 Unload Me '卸载用户窗体
(54) UserForm1.Show 0'将窗体设置为无模式状态
(55) Application.EnableEvents=False '禁用所有事件
(56) Application.EnableEvents = True '启用所有事件
(57) Set d = CreateObject(Scripting.Dictionary) '创建一个 Dictionary 对象变量
(58) d.Add 'a', 'Athens' '为对象变量添加关键字和条
(59) Application.OnKey “^I”,”macro” '设置Ctrl+I键为macro过程的快捷键
(60) Application.CutCopyMode=False '退出剪切/复制模式
(61) Application.Volatile True '无论何时工作表中任意单元格重新计算,都会强制计算该函数
(62) Application.Volatile False '只有在该函数的一个或多个参数发生改变时,才会重新计算该函数
(63) Err.Clear '清除程序运行过程中所有的错误
(64) Workbooks.Close '关闭所有打开的工作簿
(65) ActiveWorkbook.Path '返回当前工作簿的路径(注:若工作簿未保存,则为空)
(66) ActiveWorkbook.Saved '返回工作簿的存储值(若已保存则为False)
(67) Application.Visible = False '隐藏工作簿
(68) Application.Visible = True '显示工作簿
(69) ActiveSheet.Columns('B').Insert '在A列右侧插入列,即插入B列
(70) ActiveSheet.Columns('E').Cut
(71) ActiveSheet.Columns('B').Insert 70,71两句将E列数据移至B列,原B列及以后的数据相应后移
(72) ActiveSheet.Calculate '计算当前工作表
(73) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden '正常隐藏工作表,同在Excel菜单中选择“格式——工作表——隐藏”操作一样
(74) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden '隐藏工作表,不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工作
(75) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVisible '显示被隐藏的工作表
(76) ThisWorkbook.Sheets(1).ProtectContents '检查工作表是否受到保护
(77) ThisWorkbook.Worksheets.Add Count:=2, Before:=ThisWorkbook.Worksheets(2) 或 ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2 '在第二个工作表之前添加两个新的工作表
(78) ThisWorkbook.Worksheets(3).Copy '复制一个工作表到新的工作簿
(79) ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) '复制第三个工作表到第二个工作表之前
(80) ThisWorkbook.Worksheets(1).Activate '当前工作簿中的第一个工作表被激活
(81) ThisWorkbook.Worksheets('Sheet1').Rows(1).Hidden = True '将工作表Sheet1中的1隐藏
(82) ActiveCell.EntireRow.Hidden = True '将当前工作表中活动单元格所在的行隐藏
(83) ActiveSheet.Range(“A:A”).EntireColumn.AutoFit '自动调整当前工作表A列列宽
(84) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) '选中当前工作表中常量和文本单元格
(85) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) '选中当前工作表中常量和文本及错误值单元格
(86) Application.WorksheetFunction.CountA(Range(“A:A”))+1 '获取A列的下一个空单元格
(87) Set FirstCell=Range(RefEdit1.Text).Range(“A1”) '设置某单元格区域左上角单元格
(88) Application.OnTime Now + TimeValue('00:00:15'), 'myProcedure' '等待15秒后运行myProcedure过程
(89) Application对象
(90) Application.UserName '返回应用程序的用户名
(91) Application.Caller.Parent.Parent '返回调用函数的工作簿名称
(92) Application.StatusBar=”请等待……” '将文本写到状态栏
(93) Application.StatusBar=False '将状态栏重新设置成正常状态
(94) Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”)) '返回一个垂直的数组
(95) Application.ActiveCell.Address '返回活动单元格的地址(注:返回的是绝对地址)
(96) Application.ActiveSheet.Name '返回活动工作表的名称
(97) Application.ActiveWindow.Caption '返回活动窗口的标题
(98) Application.ActiveWorkbook.Name '返回活动工作簿的名称
(99) Application.Selection.Address '返回所选区域的地址
(100) Application.ThisWorkbook.Name '返回当前工作簿的名称
(101) Range(A1:A10).Value=Application.WorksheetFunction.Transpose(MyArray) '将一含有10个元素的数组转置成垂直方向的工作表单元格区域(A1至A10)注:因为当把一维数组的内容传递给某个单元格区域时,该单元格区域中的单元格必须是水平方向的,即含有多列的一行。若必须使用垂直方向的单元格区域,则必须先将数组进行转置,成为垂直的。
(102) Cells(rows.count,1).End(xlUp).Row+1 '返回A列最后一行的下一行
(103) rng.Range(“A1”) '返回区域左上角的单元格
(104) ActiveSheet.Range('A:B').Sort Key1:=Columns('B'), Key2:=Columns('A'), Header:=xlYes '两个关键字排序,相邻两列,B列为主关键字,A列为次关键字,升序排列
(105) cell.Range(“A1”).HasFormula '检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula '工作表中单元格是否含有公式
(106) Cell.EntireColumn '单元格所在的整列
(107) Cell.EntireRow '单元格所在的整行
(108) rng.Address '返回rng区域的地址
(109) Range(“D5:D10”).Cells(1,1) '返回单元格区域D5:D10中左上角单元格
(110) ActiveCell.Row '活动单元格所在的行数
(111) ActiveCell.Column '活动单元格所在的列数
(112) Set MyRange=Range(“A1:A5”) '创建一个名为MyRange的对象变量
(113) Application.Calculation = xlCalculationManual '设置工作簿手动计算
(114) Application.Calculation = xlCalculationAutomatic '工作簿自动计算
(115) Worksheets(1).EnableCalculation = False '不对第一张工作表自动进行重算
(116) ActiveSheet.Shapes.AddPicture 'd:\sx.jpg', True, True, 60, 20, 400, 300 '在当前工作表中插入一张d盘中名为sx的图片