对象就是我们Excel和程序的操作对象。比如单元格、工作簿。我们对于Excel的每个操作其实都是对相应对象的操作。比如选中单元格、保存工作表。
对象存放在对象模型里,2013以上版本似乎已经没有离线文档,只有在线的:https://msdn.microsoft.com/ZH-CN/library/ff194068.aspx
每个对象又有自己的属性和方法,最后构成完整的事件。
记住常用对象:
Application对象:
代表的是Excel的整个程序,所以是最上层。
ScreenUpdating属性
Application.ScreenUpdting=True (默认为真),作用在于,当程序有多个计算步骤时,VBA默认是每一个计算结果一个显示,改为false后,可以让程序执行完后再显示结果,可以提高程序效率。(虽然感觉没啥用)
对比以下两段程序:
第一段代码中,程序有四步,按顺序执行和显示。
第二段代码中,四个步骤按顺序执行,最后一步将结果同时展示。
DisplayAlerts属性
看到Alert这个词大概知道是干嘛的了。
一个删除工作表的程序:
在运行程序后,会弹出一个警告对话,询问是否删除工作表,十分影响效率。
(虽然我依然觉得没啥实用的,我的工作表还不会多到需要用代码来删除)
如果在最初加上:
Application.DisplayAlerts=False (默认为True)
则不会显示警告,直接执行操作。同样的,在最后记得将默认值修改为true。
EnableEvents属性
此属性用于启用或禁止事件。
这里的事件多指在程序中的某一个可执行操作,代码,比如选中单元格。同样的,我们如果要禁止某一事件执行,在他的代码行前面加上:
Application.EnableEvents=False
同样记得后面改回默认值True。
WorksheetFunction属性
介于VBA中很多函数都没有,(之前连SUM都没有用)使用这个属性可以调用部分工作表函数,
比如我要计算A1到A10间的求和,在VBA中,
第一种,直接使用函数:
Cells(25, "A") = "=sum(A1:A10)",就相当于将公式写入单元格,不过没必要。
第二种,调用属性:
Cells(25, "A") =Application.WorksheetFunction.Sum(Range("A1:A10"))
记住这里需要结合Range,选择求和区域。
另外,如果VBA中已有的函数(不多),不能用这种方式调用。
Application的常用属性