Excel工作表的VBA对象模型

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

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

1.类与对象的创建:

2.类与对象的名称:

二、修改CodeName:

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

2.同步修改:

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

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

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

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

[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

三、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

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

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

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

时间: 2024-08-12 11:45:49

Excel工作表的VBA对象模型的相关文章

C#将一个excel工作表根据指定范围拆分为多个excel文件

C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其他方法如VBA及Visual Studio语言(如C#.VB.NET等)编程的方式.VBA我不是很熟悉,因此这篇文章写的是如何使用C# 将一个excel工作表根据指定的范围拆分为多个excel文件. 下面是一个excel人力资源信息表,里面含有三个部门及一些员工信息: 接下来就开始拆分这个excel

EXCEL工作表保护密码破解方式

Excel工作表密码保护的解除方法 Excel弹出"您试图更改的单元格或图表受保护,因而是只读的.若要修改受保护单元格或图表,请先使用'撤消工作表保护'命令(在'审阅'选项卡的'更改'组中)来取消保护.可能会提示您输入密码. 出现这种情况,应该怎么解决呢?经过研究,找到了两种破解Excel工作表保护码的方法. 一.VBA宏代码破解法: 第一步:打开该文件 第二步:按Alt+F11,进入VBA编辑界面: 第三步:插入一个Module: 第四步:在右边Module的空白编辑区域,复制粘贴下面的所有内

破解Excel工作表密码

1.在VBA中使用以下方法,即可破解Excel工作表密码. (1)在Excel文档中,选择"视图"选项卡,选择"宏",录制宏,然后停止录制. (2)然后,按Alt + f11,调出VBA界面,发现有一个模块1,下面就是刚才录制宏的方法,把下面的代码Copy进去,替换掉,最后点工具栏的绿色三角形,执行方法,即可破解Excel工作表的密码. Public Sub AllInternalPasswords()' Breaks worksheet and workbook

Excel工作表之SQL查询方法

[转载]Excel工作表之SQL查询方法 来源:http://blog.csdn.net/zhanghongju/article/details/8428458 近期在单位上做业务数据分析,发现还是Excel用的直接,筛选.求和.分类等等也是不亦乐乎,但是发现一些函数的效率与SQL还是有着较大差距,甚至是天壤之别,故作文一篇,提供Excel中的SQL查询使用方式. 查询的工作表可以是当前工作簿中的,也可以是其他工作簿中的.例如,图1所示的“网站数据.xlsx”工作簿中,Sheet1表格存储的是网

C# 原样复制excel工作表

在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文档之间复制.本文主要介绍如何用C#在同一文档内或不同文档间原样复制excel工作表(包括数据.图片和格式等),希望能对有同样问题的朋友有些许帮助(如果有不清楚的地方,可以参考教程). 第一步:新建一个控制台项目并添加引用和命名空间. using Spire.Xls; 第二步:新建一个workbook

使用宏命令撤销EXCEL工作表保护

EXCEL工作表编辑资料,设置了工作表保护后,不能对表格进行插入删除操作.如果没有密码,很简单:工具-选项—工作表保护——撤消工作表保护 就可以了.如果忘记密码,如下操作: 1. 打开文件 2. 工具---宏----录制新宏---输入名字如:a 3. 停止录制(这样得到一个空宏) 4. 工具---宏----宏,选a,点编辑按钮 5. 删除窗口中的所有字符(只有几个),替换为下面的内容:(复制下来) Option ExplicitPublic Sub AllInternalPasswords()

excel工作表密码破解方法

在日常工作中,大家有时会遇到过这样的情况:使用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护密码容易忘记,这该怎么办?有时您从网上下载的Excel格式的小程序,您想修改,但是作者加了工作表保护密码,怎么办?您只要按照以下步骤操作,Excel工作表保护密码瞬间(稍微有点夸张)即破! 步骤阅读 百度经验:jingyan.baidu.com 工具/原料 待破解的Excel工作表

Office 2016 - 下载、安装、激活后,右键新建菜单中,出现 Micorosoft Excel 97-2003 工作表,而不是 Micorosoft Excel 工作表、以及对新建菜单项位置做调整

安装激活 Office 2016 后,新建菜单项如下: 首先,需要做的是把右键新建菜单项中的 Micorosoft Excel 09-2003 工作表去除(保存格式是 .xls),替换为 Micorosoft Excel 工作表(Excel 2016 的默认格式 .xlsx) 其次,对新建菜单项的排列顺序做调整,额,把 Micorosoft Excel 工作表 移至 Micorosoft Word 文档下面. 调整后样式:

C# 如何合并Excel工作表

合并文档能有效的简化繁杂的文档管理.在工作中,当我们遇到需要将多个Excel工作表合并为一个工作表的时候,该怎么来合并呢,本文将进一步介绍.使用工具:Free Spire.XLS for .NET.Visual Studio 2013PS: 编辑代码前需要添加引用Spire.XLS.dll到项目程序中,并添加到命名空间合并Excel表格分两种,一是合并多个工作薄中的工作表到一个工作表:二是合并一个工作簿中的多个工作表为一个工作表 一.从多个工作簿合并 using Spire.Xls; names