Ste*_*mes 18 excel vba worksheet excel-vba
似乎Visual Basic不能根据用户修改的工作表名称引用工作表.工作表选项卡可以更改其名称,但似乎Visual Basic仍然将工作表名称视为Sheet1等,尽管工作簿选项卡已更改为有用的东西.
我有这个:
TABname = rng.Worksheet.Name ' Excel sheet TAB name, not VSB Sheetx name.
Run Code Online (Sandbox Code Playgroud)
但我想在Visual Basic例程中使用工作表名称.到目前为止我能得到的最好的是选择Case Case the Worksheet Tab与Visual Basic名称,这不是我的一天.Visual Basic必须知道Sheet1,Sheet2等名称.如何将这些与Excel选项卡名称关联起来,以便我不必维护一个随每个新工作表或工作表选项卡重命名而更改的查找表?提前感谢您的回复.
Cha*_*ams 25
在Excel对象模型中,Worksheet有2个不同的名称属性:
Worksheet.Name
Worksheet.CodeName
Name属性是读/写,包含工作表选项卡上显示的名称.它是用户和VBA可更改的
CodeName属性是只读的
可以参考一个特定的片作为工作表("佛瑞德").范围("A1")其中佛瑞德是请将.Name属性或作为Sheet1.Range("A1")其中Sheet 1中是工作表的代号.
小智 5
这将更改所有工作表对象的名称(从 VBA 编辑器的角度)以匹配它们的工作表名称(从 Excel 的角度):
Sub ZZ_Reset_Sheet_CodeNames()
'Changes the internal object name (codename) of each sheet to it's conventional name (based on it's sheet name)
Dim varItem As Variant
For Each varItem In ThisWorkbook.VBProject.VBComponents
'Type 100 is a worksheet
If varItem.Type = 100 And varItem.Name <> "ThisWorkbook" Then
varItem.Name = varItem.Properties("Name").Value
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
重要的是要注意对象名称(代号)“(名称)”被属性名称“名称”覆盖,因此它必须作为子属性引用。
| 归档时间: |
|
| 查看次数: |
145148 次 |
| 最近记录: |