excel - 按名称访问工作表,包括 ThisWorkbook

标签 excel vba

这一直困扰着我一段时间。我想按名称访问工作表,而不是“如何在 Excel 中命名工作表”。我还想包括 ThisWorkbook在该行中,以消除使用同名工作表打开多个工作簿的可能性。但是我收到一个错误:
我已将我的工作表命名为 CalculationItem1 .为什么以下不起作用?

Sub TestTest()
    ThisWorkbook.CalculationItem1.Range("A1:A2").Copy
End Sub
出现以下错误:
enter image description here

以下作品,但有可能在另一个打开的工作簿中具有相同名称的工作表?那么会出现错误吗?
Sub TestTest()
    CalculationItem1.Range("A1:A2").Copy
End Sub

这是名称:
enter image description here

最佳答案

只要工作表与代码(“ThisWorkbook”)位于同一工作簿中,您就可以通过其代码名称访问工作表。即使工作簿未处于事件状态也是如此 - 就像您有一个具有该名称的对象变量。所以使用 CalculationItem1.Range("A1:A2").Copy将始终引用代号为 CalculationItem1 的工作表的 ThisWorkbook .
如果要通过代号访问另一个工作簿的工作表,则必须迭代工作表并查找属性 CodeName (正如 FaneDuru 在他的回答中显示的那样)。

关于excel - 按名称访问工作表,包括 ThisWorkbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63031764/

相关文章:

VBA - With and selection 命令太慢了。我怎样才能更好地优化它以更快地运行?

VBA for Excel : Error 424 Object Required

excel - 使用 Excel VBA 调整列表框以显示长于列表框宽度的字符串

vba - 错误9 下标超出范围

sql - 检查表Access 2010 VBA中是否已存在记录

vba - 如何检查 Excel 工作表是否受到保护?

r - 在 R 中的 Excel 工作簿中获取单元格的格式信息

excel - 对象单元格/范围不支持 VBA 中的 .Font 属性

excel - 如何创建 kml 来对 Google 地球中的地址进行地理编码?

vba - 使用文本而不是值创建变体数组