使用命名范围字母作为起点
Using a named range letter for a starting point
我使用 R、ES 或 KE 列作为不同事物的起点。
但是,我相信这本工作簿会发展,因为它已经这样做了,而且这些起点会改变。
我有几个这些起点的实例,因此我想这样做,这样我就可以非常快速地更改这些值,而不是遍历所有代码。
为此,我创建了一个命名范围并将其命名为 'vb_PercentLetter' 。这是 R 列的起点。 vb_PercentLetter 的值为 'R'
在 vba 中,我这样使用它:
x = ws1.Range("vb_PercentLetter" & rowCounter).Offset(0, colCounter) * 100
然而,这不起作用
我可以使用这种方法吗,还是应该改用其他方法?
这是您对 Jeeped 的评论:"the vb_PercentLetter is literally just the letter R, nothing else, so it isn't assigned to any worksheet"
如果是这种情况,那么 vb_PercentLetter 实际上是一个工作簿名称,而不是命名范围。 "R" 不是范围。
Names("vb_PercentLetter")
将 return ="R"
使用常量表达式会得到想要的结果
在 Public 代码模块中
Public vb_PercentLetter = "R"
我更喜欢枚举每个工作表的列。这使得维护代码变得非常容易。
Public Enum WSCoumns1
ws1Percent = 10
ws1ES = 11
ws1KE = 12
End Enum
枚举语法
ws1.Cells(rowCounter, ws ).Offset(0, colCounter).Offset(0, colCounter) * 100
我使用 R、ES 或 KE 列作为不同事物的起点。 但是,我相信这本工作簿会发展,因为它已经这样做了,而且这些起点会改变。 我有几个这些起点的实例,因此我想这样做,这样我就可以非常快速地更改这些值,而不是遍历所有代码。
为此,我创建了一个命名范围并将其命名为 'vb_PercentLetter' 。这是 R 列的起点。 vb_PercentLetter 的值为 'R' 在 vba 中,我这样使用它:
x = ws1.Range("vb_PercentLetter" & rowCounter).Offset(0, colCounter) * 100
然而,这不起作用 我可以使用这种方法吗,还是应该改用其他方法?
这是您对 Jeeped 的评论:"the vb_PercentLetter is literally just the letter R, nothing else, so it isn't assigned to any worksheet"
如果是这种情况,那么 vb_PercentLetter 实际上是一个工作簿名称,而不是命名范围。 "R" 不是范围。
Names("vb_PercentLetter")
将 return ="R"
使用常量表达式会得到想要的结果
在 Public 代码模块中
Public vb_PercentLetter = "R"
我更喜欢枚举每个工作表的列。这使得维护代码变得非常容易。
Public Enum WSCoumns1
ws1Percent = 10
ws1ES = 11
ws1KE = 12
End Enum
枚举语法
ws1.Cells(rowCounter, ws ).Offset(0, colCounter).Offset(0, colCounter) * 100