VBA中如何移除工作簿名引用,使用ThisWorkbook调用命名区域?
VBA移除工作簿名称引用的解决方法
你用ThisWorkbook的思路完全正确,问题出在写法上,只要调整代码结构就能实现。
修改后的代码
ThisWorkbook.Range("Modelling_Labour_WBS").Copy
为什么这么写?
ThisWorkbook是VBA内置对象,专门指代当前宏代码所在的工作簿——不管你把工作簿重命名成什么,它都能精准指向正确文件,彻底摆脱硬编码的工作簿名称。- 原来代码里的
Modelling_Labour_WBS是工作簿级命名区域,直接放在Range()里,再用ThisWorkbook限定范围,效果和原来的跨工作簿引用一致,但更灵活可靠。
新手额外提醒
如果Modelling_Labour_WBS是工作表级命名区域(仅属于某个特定工作表),可以加上工作表名称限定避免歧义:
ThisWorkbook.Worksheets("你的工作表名称").Range("Modelling_Labour_WBS").Copy
你可以通过Excel顶部菜单栏的「公式」→「名称管理器」,查看这个命名区域的归属(工作簿级还是工作表级)。
内容的提问来源于stack exchange,提问作者Talia
相关产品推荐
相关产品推荐

