我在Excel 2016 VBA模块中有多个函数/过程,这些函数/过程引用了一个名为DataSheet
的代号。
Public Sub LoadRecords()
'***Caution: The 'DataSheet' CodeName is hardcoded (in multiple places).***
With DataSheet.ListObjects(tblName)
'Some code
Next
End With
End Sub
Function ConcatVars(RowNum As Integer) As String
'***Caution: The 'DataSheet' CodeName is hardcoded (in multiple places).***
For Each Column In DataSheet.ListObjects(tblName).ListColumns
'Some code
Next
End Function
问题:
有没有办法将代号声明为常量?
- 原因:如果要更改代号,VBA 代码中的引用可以在一个非常引人注目的位置进行更新。
我尝试过的:
如果我把代号放在一个常量中:
Public Const codeName = "DataSheet"
并尝试引用常量:
With codeName.ListObjects(tblName)
我收到此错误:
编译错误:限定符无效
只需定义一个函数(并避免使用相同的函数或变量名称重载现有的 CodeName 属性(:
Function myCodeName() As Worksheet
Set myCodeName = DataSheet ' << change to your project's Code(Name)
'Debug.Print myCodeName.CodeName
End Function