目录:
- 如果要使用Excel对象,它们全部位于应用对象。所以首先键入
- 如果要求您完全限定所做的每个对象引用,那么代码会变得相当长,而且读起来可能会更困难。幸运的是,Excel为您提供了一些可以提高可读性的快捷方式(并为您节省了一些键入空间)。对于初学者来说,Application对象总是被假定。只有少数情况下,键入它是有意义的。省略Application对象引用将示例缩短为
视频: 0503 VBA编程思想 2024
引用VBA代码中的对象是非常重要的,因为您必须标识对象你想在Excel 2016中工作。毕竟,VBA不能读你的头脑 - 但。有传言说,阅读对象将在Excel 2019中引入。
您可以一举处理整个对象集合。但是,更多的情况下,您需要使用集合中的特定对象(例如工作簿中的特定工作表)。要引用集合中的单个对象,请将对象的名称或索引编号置于集合名称后面的括号内,如下所示:
<! --1 - >工作表(“Sheet1”)
请注意,工作表的名称是用引号引起来的。如果省略引号,则Excel将无法识别该对象(并假定它是一个变量名称)。
如果Sheet1是集合中的第一个(或唯一)工作表,则还可以使用以下参考:
工作表(1)
在这种情况下,编号 不是 引号。底线?如果使用其名称引用对象,请使用引号。如果使用索引号引用对象,请使用不带引号的普通数字。
怎么样的图表?图表包含一个图表。它有一个工作表选项卡,但它不是工作表。那么,事实证明,对象模型有一个名为图表的集合。此集合包含工作簿中的所有图表工具对象(不包括嵌入工作表中的图表)。
为了保持逻辑,还有另外一个名为Sheets的集合。工作表集合包含工作簿中的所有工作表(工作表和图表工作表)。如果您希望使用工作簿中的所有工作表,并且不在乎工作表或图表是否适用,则表格集合非常方便。
<!因此,名为Sheet1的单个工作表是两个集合的成员:Worksheets集合和Sheets集合。您可以通过以下两种方式之一来引用它:工作表(“Sheet1”)表单(“Sheet1”)
浏览层次结构
如果要使用Excel对象,它们全部位于应用对象。所以首先键入
应用程序 。 Excel的对象模型中的每个其他对象都位于Application对象下。通过向下移动层次并使用点(。)运算符将每个对象连接到路径上,可以获得这些对象。转到名为Book1的Workbook对象。 xlsx,从Application对象开始,向下导航到Workbooks集合对象:
Application。工作簿(“Book1。xlsx”)
要进一步导航到特定的工作表,请添加一个点运算符并访问工作表集合对象:
应用程序。工作簿(“Book1。xlsx”)。工作表(1)
还不够远?如果您确实想从名为Book1的工作簿的第一个工作表上的单元格A1中获取该值。 xlsx,您需要再导航到Range对象:
Application。工作簿(“Book1。xlsx”)。工作表(1)。范围(“A1”)。值
当以这种方式引用Range对象时,它被称为
完全限定引用。 你已经告诉了Excel究竟是你想要的范围,在哪个工作表和哪个工作簿上,并没有留下任何想象。想象力对人好,但在计算机程序方面并不那么好。 顺便说一句,工作簿名称也有一个点来分隔文件名与扩展名(例如,Book1.xlsx)。这只是一个巧合。文件名中的点与点操作符完全没有关系。
简化对象引用
如果要求您完全限定所做的每个对象引用,那么代码会变得相当长,而且读起来可能会更困难。幸运的是,Excel为您提供了一些可以提高可读性的快捷方式(并为您节省了一些键入空间)。对于初学者来说,Application对象总是被假定。只有少数情况下,键入它是有意义的。省略Application对象引用将示例缩短为
Workbooks(“Book1。xlsx”)。工作表(1)。范围(“A1”)。价值
这是一个相当不错的改进。但是等等,还有更多。如果你确定Book1。 xlsx是活动的工作簿,您也可以省略该参考。现在,您只需要
工作表(1)。范围(“A1”)。价值
现在你到了某个地方。你有没有猜到下一个捷径?那就对了。如果您知道第一个工作表是当前活动的工作表,则Excel将假定该参考并允许您只键入
范围(“A1”)。值
与某些人可能认为的相反,Excel没有Cell对象。一个
单元格 就是一个仅由一个元素组成的Range对象。 这里描述的捷径非常好,但也可能是危险的。如果你只是
认为 Book1。 xlsx是活动的工作簿?你可能会得到一个错误,或者更糟的是,你可能会得到错误的价值,甚至没有意识到这是错的。出于这个原因,通常最好完全限定你的对象引用。 With-With With结构可以帮助您完全限定引用,但也有助于使代码更具可读性并减少打字量。两全其美的!