分享

教程 | Excel中超实用的86种常用VBA写法

 asaser 2022-09-20 发布于四川

写在前面

本文梳理的86种VBA常用写法涵盖了大多数excel场景。
如果说非IT编程有没有捷径,下面便是!

上篇

1、强制对模块内所有变量进行声明

Option Explicit

2、指定数组的第一个下标为1

Option Base 1

3、忽略错误继续执行VBA代码,避免出现错误消息

On Error Resume Next

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、激活名为book1的工作簿

Workbooks('book1.xls').Activate

12、保存工作簿(公众号:URItker)

ThisWorkbook.Save

13、关闭当前工作簿

ThisWorkbook.close

14、获取活动工作薄中工作表数

ActiveWorkbook.Sheets.Count

15、返回活动工作薄的名称

ActiveWorkbook.name

16、返回当前工作簿名称

ThisWorkbook.Name

17、返回当前工作簿路径和名

ThisWorkbook.FullName

18、当前工作表中已使用的行数

ActiveSheet.UsedRange.Rows.Count

19、获取工作表的行数

Rows.Count

20、将Sheet1命名为Sum

Sheets('Sheet1').Name='Sum'

21、添加一个新工作表在第一工作表前

ThisWorkbook.Sheets.Add Before:=Worksheets(1)

22、将当前工作表移至工作表的最后

ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

23、同时选择工作表1和工作表2(公众号:URItker

Worksheets(Array('sheet1','sheet2')).Select

24、删除工作表1

Sheets('sheet1').DeleteSheets(1).Delete

25、删除当前工作表中所有的条件格式

ActiveSheet.UsedRange.FormatConditions.Delete

26、取消当前工作表所有超链接

Cells.Hyperlinks.Delete

27、选择当前活动单元格所包含的范围,等同于快捷键Ctrl+A

ActiveCell.CurrentRegion.Select

28、选定当前工作表的所有单元格

Cells.Select

中篇

29、清除活动工作表上单元格A1中的内容。

Range('A1').ClearContents

清除选定区域内容

Selection.ClearContents

彻底清除A1至D4单元格区域的内容,包括格式(公众号:URItker

Range('A1:D4').Clear

30、清除工作表中所有单元格的内容

Cells.Clear

31、活动单元格下移一行,同理,可下移一列

ActiveCell.Offset(10).Select

32、复制单元格A1粘贴到单元格B1中

Range('A1').Copy Range('B1')

33、将单元格区域复制到单元格F1开始的区域中

Range('A1:D8').Copy Range('F1')

34、剪切单元格区域A1至D8,复制到单元格F1开始的区域中

Range('A1:D8').Cut Range('F1')

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

Range('A1').CurrentRegion.Copy Sheets('Sheet2')Range('A1')

36、活动窗口中选择的单元格数

ActiveWindow.Range.Selection.Count

37、当前选中区域的单元格数

Selection.Count

38、获取单元格A1背景色

Range('A1”).Interior.ColorIndex

39、返回当前工作表的单元格数

cells.count

40、定位B3:B113的区域

Range('B3').Resize(113)

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、使用工作表检查A1单元格中的数据是否为数字

Application.Worksheet.FunctionIsNumber('A1')

47、激活单元格区域A列中最大值的单元格(公众号:URItker

Range('A:A').find(Application.WorksheetFunction.Max(Range('A:A'))).Activate

48、消息框中显示消息Hello

MsgBox 'Hello!'

49、在消息框中点击“是”按钮,则Ans值为vbYes;点击“否”按钮,则Ans值为vbNo。

Ans=MsgBox('Continue?',vbYesNo)

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、创建一个Dictionary对象变量

Set d=CreateObject(ScriptingDictionary)

58、为对象变量添加关键字

d.Add'a','Athens'

59、设置Ctrl+I键为macro过程的快捷键

Application.OnKey '^I','macro'

60、退出剪切/复制模式

Application.CutCopyMode=False

61、无论何时工作表中任意单元格重新计算,都会强制计算该函数

Application.Volatile True

62、只有在该函数的一个或多个参数发生改变时,才会重新计算该函数

Application.Volatile False

63、清除程序运行过程中所有的错误(公众号:URItker

Err.Clear

64、关闭所有打开的工作簿

Workbooks.Close

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

ActiveWorkbook.Path

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

ActiveWorkbook.Saved

67、隐藏工作簿

Application.visible=False

68、显示工作簿

Application.Visible=True

69、在A列右侧插入列,即插入B列

ActiveSheet.Columns('B').Insert

70、将E列数据移至B列,原B列及以后的数据相应后移

ActiveSheet.Columns('E').CutActiveSheet.Columns('B').Insert

72、计算当前工作表

ActiveSheet.Calculate

73、隐藏工作表,可通过菜单取消隐藏

ThisWorkbook.Worksheets('sheet1')Visible=xlSheetHidden

74、隐藏工作表,不可通过菜单取消隐藏

ThisWorkbook.Worksheets('sheet1').Visible=xlSheetVeryHidden

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)

78、复制一个工作表到新的工作筹(公众号:URItker

ThisWorkbook.Worksheets(3).Copy

79、复制第三个工作表到第二个工作表之前

ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2)

80、当前工作簿中的第一个工作表被激活

ThisWorkbook.Worksheets(1).Activate

81、活动单元格所在的列数

ActiveCell.Column

82、创建一个名为MyRange的对象变量

Set MyRange=Range('A1:A5')

83、设置工作簿手动计算

Application.Calculation=xlCalculationManual

84、工作簿自动计算

Application.Calculation=xlCalculationAutomatic

85、不对第一张工作表自动进行重算

Worksheets(1).EnableCalculation=False

86 相当于not in

IsError(Application.Match(dws.Name, Array('sheet1', 'sheet2', 'sheet3'), 0))

THE

END

创作不易,

您的支持是我坚持的动力,

劳烦动动手指转发在看

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多