excel引用!关键是如何精确引用你要操作的对象

来源:互联网 时间:2016-01-03

狭义来说(注意:是"狭义"来说),

EXCEL和ACCESS VBA编程很容易,无非是

 

1。熟悉VBA的几个语句,条件,分支,循环。这很容易掌握。

2。熟悉应用程序的对象模型。这需要一些时间,并且对应用程序的操作越熟练,你对应用程序的对象模型掌握的就越透彻。

 

熟悉了应用程序的对象模后,你的注意力就应该转移到如何精确引用你要操作的对象上来了。

 

对于EXCEL来说,精确引用你要操作的对象可能相对容易一些,因为在EXCEL VBA中,对象的引用只有"."点引用,掌握了如下引用,恭喜你,很多工作都可以用这种最笨的方法完成(必须完全不考虑代码简洁和效率)。

 

Wookbooks("WorkbooksName.xls").WorkSheets("WorkSheetName").Cells(r,c).value.

 

但对于ACCESS,情况可能稍微复杂一点。在ACCESS中对象的引用不仅有"."点引用,还有"!"引用。

至于什么时候用".",什么时候用"!",确实令ACCESS的初学者一头雾水。

 

我在这里谈一谈这个问题。

 

简单来说;

"!"引用用于引用用户自己创建的ACCESS数据库对象,比如用户创建的窗体,报告,控件等。

"."引用用于引用ACCESS数据内置的对象,属性。

 

比如Reports!rptOrders.Visible, 第一个元素,Reports表示ACCESS内置的报告集合,包含所有当前打开的报告。第二个元素rptOrders是用户自己创建的报告,所以在它的前面使用"!"分隔符。而第三个元素Visible,是ACCESS数据库应用程序的内置属性,所以它前面用"."分隔符.

 

有时我们会看到如下形式的对象和属性的引用:

[Reports]![rptOrders].Visible,甚至[Reports]![rptOrders].[Visible]。

其实在上面这种情况下方括号不是必需的,但加上也没有什么坏处。

 

但在以下两种情况下必须加方括号。

1。对象名字中间有空格或者其他非标准字符。

2。在参数查询条件里引用对象名称时,需要方括号,以避免在查询条件里把对象名称误认为是字符串。

 

此外,我们还有两种方法引用用户自定义对象,"双引号引用"和"索引号引用"'

 

1."双引号引用"

比如,"双引号引用"Reports("rptOrders")和Reports!rptOrders等价。这种引用方式允许把对象名称存储在变量里以便随后引用。比如:

Dim strReportName As String

strReportName="rptOrders"

Reports(strReportName).visible=False

 

2."索引号引用"

当你需要遍历对象集合中的所有对象时,使用"索引号引用"非常方便。比如Reports(0)代表Report对象集合中的第一个报告,Reports(Reports.Count)代表Report对象集合中的最后一个报告。

 

相关阅读:
Top