大家在学习VBA过程中要注意积累自己的所学,以后我会不定期的将写代码过程中经常用到的一些语句及解释总结供大家参考。这些可以作为积木编程的一个有效补充。
来源:https://zhuanlan.zhihu.com/p/85175040
Option Explicit
强制对模块内所有变量进行声明Option Base 1
指定数组的第一个下标为1On Error Resume Next
忽略错误继续执行VBA代码,避免出现错误消息On Error GoTo ErrorHandler
当错误发生时跳转到过程中的某个位置On Error GoTo 0
恢复正常的错误提示Application.DisplayAlerts=False
在程序执行过程中使出现的警告框不显示Application.ScreenUpdating=False
关闭屏幕刷新Application.ScreenUpdating=True
打开屏幕刷新Workbooks.Add()
创建一个新的工作簿Workbooks("book1.xlsm").Activate
激活名为book1的工作簿ThisWorkbook.Save
保存工作簿ThisWorkbook.close
关闭当前工作簿ActiveWorkbook.Sheets.Count
获取活动工作薄中工作表数ActiveWorkbook.name
返回活动工作薄的名称ThisWorkbook.Name
返回当前工作簿名称ThisWorkbook.FullName
返回当前工作簿路径和名称ActiveWindow.EnableResize=False
禁止调整活动工作簿的大小ActiveWorkbook.WindowState=xlMaximized
将当前工作簿最大化工作表ActiveSheet.UsedRange.Rows.Count
当前工作表中已使用的行数Rows.Count
获取工作表的行数Sheets("Sheet1").Name="表(1)"
将Sheet1命名为“表(1)”ThisWorkbook.Sheets.Add Before:=Worksheets(1)
添加一个新工作表在第一工作表前ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
将当前工作表移至工作表的最后Worksheets(Array("sheet1","sheet2")).Select
同时选择工作表1和工作表2Sheets("Sheet1").Delete
或Sheets(1).Delete
删除工作表1ActiveWorkbook.Sheets(i).Name
获取工作表i的名称ActiveSheet.UsedRange.FormatConditions.Delete
删除当前工作表中所有的条件格式Cells.Hyperlinks.Delete
取消当前工作表所有超链接ActiveSheet.PageSetup.Orientation=xlLandscape
或ActiveSheet.PageSetup.Orientation=2
将页面设置更改为横向ActiveSheet.PageSetup.LeftFooter=Application.UserName
将用户名放置在活动工作表的页脚ActiveCell.CurrentRegion.Select
选择当前活动单元格所包含的范围,上下左右无空行Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select
选择当前活动单元格所包含的范围,上下左右无空行Cells.Select
选定当前工作表的所有单元格Range("A1").ClearContents
清除活动工作表上单元格A1中的内容Selection.ClearContents
清除选定区域内容Range("A1:D4").Clear
彻底清除A1至D4单元格区域的内容,包括格式Cells.Clear
清除工作表中所有单元格的内容ActiveCell.Offset(1,0).Select
活动单元格下移一行,同理,可下移一列Range("A1").Offset(ColumnOffset:=1)
或Range("A1").Offset(,1)
偏移一列Range("A1").Offset(Rowoffset:=-1)
或Range("A1").Offset(-1)
向上偏移一行Application.DisplayAlerts = False
禁止弹出警告对话框(慎用,一般与True成对使用)
ActiveWorkbook.Save
保存当前的工作薄,相当于点击保存ActiveCell.EntireRow.Select
选择活动单元格所在的整行Range("A1").EntireColumn.Select
选择A列ActiveCell.EntireRow.Offset(-1, 0).Select
选择当前行向上一整行区域Range("F9").EntireColumn.Cells(1).Value = 100
给所在列第一个单元格(F1)赋值100ActiveCell.EntireColumn.Cells(2).Value = "=SUM($A2:$A10)"
给B列当前行赋SUM公式TextColor=Range(“A1”).Font.ColorIndex
检查单元格A1的文本颜色并返回颜色索引值于变量TextColor中,其中.Font.ColorIndex
是指文本的颜色索引属性。Sheets("表1").Range("A1:A" & Range("A1").End(xlDown).Row).Find(Cells(2,3), LookAt:=xlWhole)
在表1的A列单元格区域中,查找完全匹配C2单元格的值。其中LookAt:=xlWhole
是指完全匹配查找。
Sub Test1() '判断在A1到A列最后一个不为空的单元格区域中,是否存在完全匹配C2单元格的值 Set Var1 = Sheets("表1").Range("A1:A" & Range("A1").End(xlDown).Row).Find(Cells(2, 3), LookAt:=xlWhole) If Not Var1 Is Nothing Then MsgBox ("有") Else MsgBox ("没有") End If End Sub
Sub Test2() '跨表查找并取值 Sheets("表1").Select i = 2 Do While Cells(i, 1) <> "" Cells(i, 1).Select rng = Cells(i, 1) Cells(i, 2) = "" Set Var2 = Sheets("表2").Range("A1:A" & Sheets("表2").Range("A1").End(xlDown).Row).Find(rng, LookAt _ :=xlWhole) If Not Var2 Is Nothing Then Cells(i, 2) = Sheets("表2").Cells(Var2.Row, 2) i = i + 1 Set Var2 = Nothing Loop End Sub