Excel 使用命名范围字母作为起点

Excel 使用命名范围字母作为起点,excel,vba,named-ranges,Excel,Vba,Named Ranges,我使用列R、ES或KE作为不同事物的起点。 然而,我相信这本手册会发展,因为它已经这样做了,这些起点将会改变。 我有一些关于这些起始点的实例,因此我希望能够很快地更改这些值,而不是遍历所有代码 为此,我创建了一个命名范围,并将其命名为“vb_PercentLetter”。这是R列的起点。vb_PercentLetter的值为“R” 在vba中,我这样使用它: x = ws1.Range("vb_PercentLetter" & rowCounter).Offset(0, colC

我使用列R、ES或KE作为不同事物的起点。 然而,我相信这本手册会发展,因为它已经这样做了,这些起点将会改变。 我有一些关于这些起始点的实例,因此我希望能够很快地更改这些值,而不是遍历所有代码

为此,我创建了一个命名范围,并将其命名为“vb_PercentLetter”。这是R列的起点。vb_PercentLetter的值为“R” 在vba中,我这样使用它:

    x = ws1.Range("vb_PercentLetter" & rowCounter).Offset(0, colCounter) * 100
然而,这是行不通的
我是否可以使用这种方法,或者我是否应该恢复做其他事情?

下面是您对Jeeped的评论:“vb_%字母实际上只是字母R,没有其他,因此它没有分配给任何工作表”

如果是这种情况,那么vb_PercentLetter实际上是工作簿名称,而不是命名范围。“R”不是一个范围

名称(“vb\u PercentLetter”)
将返回
=“R”

使用常量表达式将得到所需的结果

在公共代码模块中

我更喜欢列举每个工作表的列。这使得维护代码非常容易

Public Enum WSCoumns1
    ws1Percent = 10
    ws1ES = 11
    ws1KE = 12
End Enum

枚举语法


范围(“vb\u PercentLetter”和rowCounter)
ws1
上吗?因此
vb\u PercentLetter
是一个
范围,其中输入字母“R”作为值吗?是的,仅在命名范围中输入字母R。该范围正在WS1上查找,但实际上没有命名范围
Public Enum WSCoumns1
    ws1Percent = 10
    ws1ES = 11
    ws1KE = 12
End Enum
 ws1.Cells(rowCounter, ws ).Offset(0, colCounter).Offset(0, colCounter) * 100