码迷,mamicode.com
首页 > 其他好文 > 详细

Excel工作表的VBA对象模型

时间:2014-09-26 18:38:20      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:des   cWeb   style   blog   color   io   os   使用   java   

Excel VBA工程的工作表类及对象

一、新建工作簿时的工作表类与对象:

1.类与对象的创建:

bubuko.com,布布扣

2.类与对象的名称:

bubuko.com,布布扣

二、修改CodeName:

1.CodeName在运行期间是只读的,即运行期间不能用代码改变工作表的这个属性,只能读取这个属性,否则会弹出错误对话框如下。

bubuko.com,布布扣

2.同步修改:

[1]CodeName可以修改,但只能在属性窗口中进行修改;

[2]当对它进行修改时,对应的类名和工作表对象名都会随之更改.

bubuko.com,布布扣

3.CodeName可以是中文,方便引用:

[1]当把CodeName改为“呵呵”之后就可以直接用“呵呵”来代指标签名为“试验”的工作表,VBA代码中极大方便对该工作表的访问。

bubuko.com,布布扣

[2]使用CodeName来引用工作表试验,代码及效果如下:

1 Sub test1()
2     Debug.Print "呵呵.Name = " & Chr(34) & 呵呵.Name & Chr(34)
3     Debug.Print "呵呵.CodeName = " & Chr(34) & 呵呵.CodeName & Chr(34)
4 End Sub

 bubuko.com,布布扣

三、CodeName更改对工作表对象的影响:

看一个试验,代码如下:

1.“呵呵”工作表代码:

1 Public Value As Integer

2.ThisWorkBook模块代码:

1 Sub test2()
2     For i = 1 To 3
3         Debug.Print "==========第" & CStr(i) & "次=========="
4         Debug.Print "改变前:呵呵.Value = " & CStr(呵呵.Value)
5         呵呵.Value = 呵呵.Value + 2
6         Debug.Print "改变后:呵呵.Value = " & CStr(呵呵.Value)
7     Next
8 End Sub

bubuko.com,布布扣

3.将CodeName从“呵呵”修改变“Sht”,然后再执行以下代码:

1 Sub test3()
2     Debug.Print "从属性窗口将CodeName从“呵呵”改" & _
3           "变为“Sht”之后:Sht.Value = " & CStr(Sht.Value)
4 End Sub

bubuko.com,布布扣

        由此可见,当CodeName被修改时,代表其工作表的类的类名会跟着更改,代表其工作表的原有对象将被销毁(无法再访问),并会用新的类名所代表的类重新初始化一个此工作表对象。

四、总结:

1.CodeName在VBA代码运行期间是只读的,要修改CodeName只能通过属性窗口手动修改;

2.CodeName与工作表相关联的VBA代码类的类名以及工作表在VBA代码中的对象名是同步的,一改同改;

3.CodeName修改时,工作表对象将会从新的类名代表的工作表类重新初始化,原有的此工作表的工作表对象的数据及状态将丢失;

4.CodeName可以是中文;

5.Name只是工作表的标签名,在VBA代码中不能作为工作表的引用来使用;

6.工作簿打开时/工作表CodeName改变时/工作表新增/工作表被移入当前工作簿时,工作表对象将从工作表类被初始化或者重新初始化;

7.工作簿关闭/工作表CodeName改变/工作表被删除/工作表被移动到其它工作簿时,已经存在的对应的工作表对象将被销毁;

8.上述6-7之间时工作表对象的存在期,这之间的任何VBA代码对工作表对象的操作将被保存在工作表对象的各种属性中,当然有些改变也会反应在Excel界面上;

9.工作表类中声明的全局变量也是工作表的属性它们在上述6-7过程中的所有修改都会保存在它所在的内存中,当然对这些声明的全局变量所做的修改,不会如工作表对象其它固有属性那样被永久保存,这些修改在超过其生命周期时,将丢失,下次再被初始化时,上一次的状态将不复存在,所以如果有必要,就要注意这些全局变量的本地化了(保存结果数据的意思)。

Excel工作表的VBA对象模型

标签:des   cWeb   style   blog   color   io   os   使用   java   

原文地址:http://www.cnblogs.com/vitrox/p/3995232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!