Jab*_*cky 3 excel vba excel-vba
可以通过名称来标识工作表,例如:
Dim mysheet As Worksheet
Set mysheet = ThisWorkbook.Sheets("My Sheetname")
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否可以通过名称识别工作表,例如通过某些唯一ID或某些属性或其他任何东西.
我的问题如下:
请参阅上面的代码段:如果用户更改工作表的名称(例如,从"我的工作表名称"更改为"您的工作表名称"),则该代码段显然将不再起作用.
这是一篇非常好的文章,它解释了使用SheetID
(也称为代号)而不是Sheet
名称更好.
引用:
Codename属性是Excel用于标识每个工作表的内部名称.与Worksheet.Name属性不同,无论工作表名称或工作表顺序如何,代号都保持不变.
代码名称也可以更改,以便更具描述性:
ThisWorkbook.VBProject.VBComponents("Sheet1").Name = "Revenue_Actuals"
Run Code Online (Sandbox Code Playgroud)
然后
Revenue_Actuals.Range("C2").value = 10
Run Code Online (Sandbox Code Playgroud)
工作良好.
使用代号(例如Sheet1.Range("C1").value
)是一个好主意,但是如上所述在运行时更改代码名称并不是某些开发人员的好习惯(例如,参见上面链接文章的评论).
使用工作表索引是另一种方法,但我个人更喜欢代码名称.
最后,本文列出了可以引用工作表或工作簿的许多方法.
我希望这有帮助!
归档时间: |
|
查看次数: |
499 次 |
最近记录: |