VBA中引用WorkSheet的新方法

作者:

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

在写 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.

类似文章:
编程 » VBA, Excel
如果不提供错误处理方法, VBA在出错时会停留在出错之处。Excel/VBA 提供 On Error关键词来处理程序运行过程中的错误,具体有下面两种用法:
编程 » Excel, VBA
无意中发现一个 Excel VBA 对待参数的一个"不正常"现象。这种处理方式可能无意中导致程序结果错误,而且你很难发现你的错误所在:
编程 » Excel, VBA
Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
编程 » Excel, VBA
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
前一篇:
碎碎念 » 谣言
不知道最初来源于哪里,这个数字我最早是从 李笑来 那里看到的,我看完之后随便搜了几个数字,觉得结果也大同小异,心想为何笑来突然关注这个数字。后来才发现网上被传得到处都是,包括 我的老同学也参与了 ,最后发现其根源是下面这条「新闻」
Solax 那里看到一个伟大的项目—— reCAPTCHA