VBA 中引用 WorkSheet 的新方法

作者: , 共 426 字

最近学到一招,效果不错~

在写 VBA 中常需要引用某个 WorkSheet 对象,一般通过工作表名

Dim ws As Worksheet 
Set ws = ThisWorkbook.Worksheets("Sheet2Name")

或者索引号

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)

来引用。但这样做有一个不好的地方,就是如果工作表改名或者工作簿有删除、插入动作,以上引用可能会失效。但使用 Code Name 在上面两种情况下都会一直有效(在 VBA 里一张工作表对象显示为 Sheet2(Sheet2Name), Code Name 即为"Sheet2」,可通过属性窗口修改为有意义的字串):

Dim ws As Worksheet
Set ws = Sheet2

而且在写法上也更简单。

但有一个缺点,跨工作表时这种方法就无效了。

Q. E. D.

类似文章:
编程 » Excel, VBA
无意中发现一个 Excel VBA 对待参数的一个"不正常"现象。这种处理方式可能无意中导致程序结果错误,而且你很难发现你的错误所在:
编程 » Excel, VBA
VBA 的 Date 类型比较奇怪。
编程 » Excel, VBA
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
编程 » Excel, lotus, VBA
公司使用 Lotus ,我每天都通过 Excel 编写 VBA 代码自动调用 Lotus 发送邮件,发现一个奇怪的现象。一般我们通过下面的 VBA 代码指定邮件收件人:
相似度: 0.098
编程 » Excel, VBA
Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
2014-03-25 更新:我已经将该类修改成函数形式,并增加新功能,参见更新 Excel 的数据库查询函数库
编程 » Excel
在编辑 Excel 文件时经常遇到的一个问题是,我这边用得好好地,换台机器就变了个样,或者根本用不了。下面是我在日常工作中总结的一些避免这些情况的小技巧。
以前发过一个编辑和发送 Outlook 邮件的 Excel/VBA 脚本。最近公司不让用 Outlook ,强制使用 IBM Lotus Notes ,我又写了一个编辑和发送 Lotus 邮件的 VBA 脚本。
编程 » Excel, VBA
效果图:
编程 » Excel, 数据库
在前面的文章里,我已经提到Excel 数据本身可以当做一张 SQL 查询的数据表,并在 Excel 内进行数据库运算操作。数据库查询函数可以用我之前写的Excel 数据库操作函数类。我们可以用以下方式
前一篇:
碎碎念 » 谣言
不知道最初来源于哪里,这个数字我最早是从李笑来那里看到的,我看完之后随便搜了几个数字,觉得结果也大同小异,心想为何笑来突然关注这个数字。后来才发现网上被传得到处都是,包括我的老同学也参与了,最后发现其根源是下面这条「新闻」
Solax那里看到一个伟大的项目——reCAPTCHA