常用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)T hisWorkbook.Save '保存工作簿(13)T hisWorkbook.close '关闭当前工作簿(14)ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数(15) '返回活动工作薄的名称(16)T ‘返回当前工作簿名称(17)T hisWorkbook.FullName ‘返回当前工作簿路径和名(18)(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19)R ows.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)edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式(26)Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接(27)A ctiveCell.CurrentRegion.Select选择当前活动单元格所包含的范围,上下左右无空行(28)Cells.Select ‘选定当前工作表的所有单元格(29)Range(“A1”).ClearContents '清除活动工作表上单元格A1中的Selection.ClearContents'清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(30)Cells.Clear '清除工作表中所有单元格的内容(31)A ctiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(32)Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中(33)R ange(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中(34)R ange(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中(35)R ange(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(36)A ctiveWindow.RangeSelection.Count '活动窗口中选择的单元格数(37)Selection.Count '当前选中区域的单元格数(38)R ange(“A1”).Interior.ColorIndex ‘获取单元格A1背景色(39)cells.count ‘返回当前工作表的单元格数(40)R ange(“B3”).Resize(11, 3)(41)U nion(Range(“A1:A9”),Range(“D1:D9”)) 区域连接(42)I ntersect(Range(“A1:B9”),Range(“A1:D9”))) ‘返回的交叉区域(43)Selection.Columns.Count ‘当前选中的单元格区域中的列数(44)S election.Rows.Count ‘当前选中的单元格区域中的行数(45)A edRange.Row ‘获取单元格区域中使用的第一行的行号(46)Application.WorksheetFunction.IsNumber(“A1”) '使用工作表函数检查A1单元格中的数据是否为数字(47)R ange(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate'激活单元格区域A列中最大值的单元格(48)M sgBox “Hello!”'消息框中显示消息Hello(49)A ns=MsgBox(“Continue?”,vbYesNo) '在消息框中点击“是”按钮,则Ans值为vbYes;点击“否”按钮,则Ans值为vbNo。
(50)Userform1.Show ‘显示用户窗体(51)L oad Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态(52)Userform1.Hide ‘隐藏用户窗体(53)U nload Userform1 或Unload Me ‘卸载用户窗体(54)U serForm1.Show 0‘将窗体设置为无模式状态(55)Application.EnableEvents=False '禁用所有事件(56)A pplication.EnableEvents = True '启用所有事件(57)S et d = CreateObject(Scripting.Dictionary) ‘创建一个Dictionary 对象变量(58) d.Add "a", "Athens" '为对象变量添加关键字和条(59)Application.OnKey “^I”,”macro”'设置Ctrl+I键为macro过程的快捷键(60)Application.CutCopyMode=False ‘退出剪切/复制模式(61)Application.V olatile True '无论何时工作表中任意单元格重新计算,都会强制计算该函数(62)A pplication.V olatile False '只有在该函数的一个或多个参数发生改变时,才会重新计算该函数(63)Err.Clear ‘清除程序运行过程中所有的错误(64)W orkbooks.Close ‘关闭所有打开的工作簿(65)A ctiveWorkbook.Path ‘返回当前工作簿的路径(注:若工作簿未保存,则为空)(66)A ctiveWorkbook.Saved ‘返回工作簿的存储值(若已保存则为False)(67)A pplication.Visible = False ‘隐藏工作簿(68)A pplication.Visible = True ‘显示工作簿(69)ActiveSheet.Columns("B").Insert ‘在A列右侧插入列,即插入B列(70)A ctiveSheet.Columns("E").Cut(71)A ctiveSheet.Columns("B").Insert 70,71两句将E列数据移至B列,原B列及以后的数据相应后移(72)A ctiveSheet.Calculate ‘计算当前工作表(73)T hisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden ‘正常隐藏工作表,同在Excel菜单中选择“格式——工作表——隐藏”操作一样(74)T hisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden ‘隐藏工作表,不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工作(75)T hisWorkbook.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)T hisWorkbook.Worksheets(3).Copy ‘复制一个工作表到新的工作簿(79)ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) ‘复制第三个工作表到第二个工作表之前(80)T hisWorkbook.Worksheets(1).Activate ‘当前工作簿中的第一个工作表被激活(81)ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True ‘将工作表Sheet1中的1隐藏(82)A ctiveCell.EntireRow.Hidden = True ‘将当前工作表中活动单元格所在的行隐藏(83)ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列列宽(84)A ctiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格(85)A ctiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格(86)Application.WorksheetFunction.CountA(Range(“A:A”))+1 ‘获取A列的下一个空单元格(87)S et FirstCell=Range(RefEdit1.Text).Range(“A1”) ‘设置某单元格区域左上角单元格(88)Application.OnTime Now + TimeValue("00:00:15"), "myProcedure" ‘等待15秒后运行myProcedure过程(89)A pplication对象(90)erName ‘返回应用程序的用户名(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) ‘返回活动工作表的名称(97)Application.ActiveWindow.Caption ‘返回活动窗口的标题(98)A ‘返回活动工作簿的名称(99)Application.Selection.Address ‘返回所选区域的地址(100) ‘返回当前工作簿的名称(101)Range(A1:A10).Value=Application.WorksheetFunction.Transpose(MyArray) ‘将一含有10个元素的数组转置成垂直方向的工作表单元格区域(A1至A10)注:因为当把一维数组的内容传递给某个单元格区域时,该单元格区域中的单元格必须是水平方向的,即含有多列的一行。