VBA编程经典语句系列

大家在学习VBA过程中要注意积累自己的所学,以后我会不定期的将写代码过程中经常用到的一些语句及解释总结供大家参考。这些可以作为积木编程的一个有效补充。

来源:https://zhuanlan.zhihu.com/p/85175040

  1. Option Explicit 强制对模块内所有变量进行声明
  2. Option Base 1 指定数组的第一个下标为1
  3. On Error Resume Next 忽略错误继续执行VBA代码,避免出现错误消息
  4. On Error GoTo ErrorHandler 当错误发生时跳转到过程中的某个位置
  5. On Error GoTo 0 恢复正常的错误提示
  6. Application.DisplayAlerts=False 在程序执行过程中使出现的警告框不显示
  7. Application.ScreenUpdating=False 关闭屏幕刷新
  8. Application.ScreenUpdating=True 打开屏幕刷新
  9. Workbooks.Add() 创建一个新的工作簿
  10. Workbooks("book1.xlsm").Activate 激活名为book1的工作簿
  11. ThisWorkbook.Save 保存工作簿
  12. ThisWorkbook.close 关闭当前工作簿
  13. ActiveWorkbook.Sheets.Count 获取活动工作薄中工作表数
  14. ActiveWorkbook.name 返回活动工作薄的名称
  15. ThisWorkbook.Name 返回当前工作簿名称
  16. ThisWorkbook.FullName 返回当前工作簿路径和名称
  17. ActiveWindow.EnableResize=False 禁止调整活动工作簿的大小
  18. ActiveWorkbook.WindowState=xlMaximized 将当前工作簿最大化工作表
  19. ActiveSheet.UsedRange.Rows.Count 当前工作表中已使用的行数
  20. Rows.Count 获取工作表的行数
  21. Sheets("Sheet1").Name="表(1)" 将Sheet1命名为“表(1)”
  22. ThisWorkbook.Sheets.Add Before:=Worksheets(1) 添加一个新工作表在第一工作表前
  23. ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) 将当前工作表移至工作表的最后
  24. Worksheets(Array("sheet1","sheet2")).Select 同时选择工作表1和工作表2
  25. Sheets("Sheet1").Delete
    Sheets(1).Delete 删除工作表1
  26. ActiveWorkbook.Sheets(i).Name 获取工作表i的名称
  27. ActiveSheet.UsedRange.FormatConditions.Delete 删除当前工作表中所有的条件格式
  28. Cells.Hyperlinks.Delete 取消当前工作表所有超链接
  29. ActiveSheet.PageSetup.Orientation=xlLandscapeActiveSheet.PageSetup.Orientation=2 将页面设置更改为横向
  30. ActiveSheet.PageSetup.LeftFooter=Application.UserName 将用户名放置在活动工作表的页脚
  31. ActiveCell.CurrentRegion.Select 选择当前活动单元格所包含的范围,上下左右无空行
  32. Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select 选择当前活动单元格所包含的范围,上下左右无空行
  33. Cells.Select 选定当前工作表的所有单元格
  34. Range("A1").ClearContents 清除活动工作表上单元格A1中的内容
  35. Selection.ClearContents 清除选定区域内容
  36. Range("A1:D4").Clear 彻底清除A1至D4单元格区域的内容,包括格式
  37. Cells.Clear 清除工作表中所有单元格的内容
  38. ActiveCell.Offset(1,0).Select 活动单元格下移一行,同理,可下移一列
  39. Range("A1").Offset(ColumnOffset:=1)
    Range("A1").Offset(,1) 偏移一列
  40. Range("A1").Offset(Rowoffset:=-1)
    Range("A1").Offset(-1) 向上偏移一行
  41. Application.DisplayAlerts = False 禁止弹出警告对话框(慎用,一般与True成对使用)
图01
  1. ActiveWorkbook.Save 保存当前的工作薄,相当于点击保存
  2. ActiveCell.EntireRow.Select 选择活动单元格所在的整行
  3. Range("A1").EntireColumn.Select 选择A列
  4. ActiveCell.EntireRow.Offset(-1, 0).Select 选择当前行向上一整行区域
  5. Range("F9").EntireColumn.Cells(1).Value = 100 给所在列第一个单元格(F1)赋值100
  6. ActiveCell.EntireColumn.Cells(2).Value = "=SUM($A2:$A10)" 给B列当前行赋SUM公式
  7. TextColor=Range(“A1”).Font.ColorIndex 检查单元格A1的文本颜色并返回颜色索引值于变量TextColor中,其中.Font.ColorIndex是指文本的颜色索引属性。
  8. 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

作者: Hugh

Welcome to Wan's world~