以C和数字开头的Excel命名范围

以C和数字开头的Excel命名范围,excel,vba,named-ranges,Excel,Vba,Named Ranges,我正在研究一个宏,我需要命名一组范围,但我遇到了一个模糊的限制 命名范围可以是单个字母,但“r”、“r”、“c”或“c”除外,当在Excel名称框中键入这些字母时,它们是选择活动单元格整行或整列的快捷方式(我从未需要过,也无法想象自己需要过这一功能) 不幸的是:a)我需要用/^C\d+.*/的格式命名范围,b)虽然我在这方面看到的一点文档(不是微软官方提供的)说您只是被限制使用单个字母C,但我发现我不能使用任何与该正则表达式匹配的名称范围 下面是我遇到的一个例子: Sub test()

我正在研究一个宏,我需要命名一组范围,但我遇到了一个模糊的限制

命名范围可以是单个字母,但“r”、“r”、“c”或“c”除外,当在Excel名称框中键入这些字母时,它们是选择活动单元格整行或整列的快捷方式(我从未需要过,也无法想象自己需要过这一功能)

不幸的是:a)我需要用
/^C\d+.*/
的格式命名范围,b)虽然我在这方面看到的一点文档(不是微软官方提供的)说您只是被限制使用单个字母C,但我发现我不能使用任何与该正则表达式匹配的名称范围

下面是我遇到的一个例子:

Sub test()
    On Error Resume Next

    ' These work:
    ThisWorkbook.Names.Add Name:="A0", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="C0", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="D0", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="A1_Test", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="A1Test", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="Test_A1", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="D1_Test", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="D1Test", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="Test_C1", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="Capricious", RefersTo:=Range("A1")

    ' These fail:
    ThisWorkbook.Names.Add Name:="C1_Test", RefersTo:=Range("A1")
    ThisWorkbook.Names.Add Name:="C1Test", RefersTo:=Range("A1")

    Debug.Print "Named Ranges:"
    Dim nm As Name
    For Each nm In ActiveWorkbook.Names
        Debug.Print vbTab & nm.Name
    Next nm
    
End Sub
请注意,我可以使用名称,其中C在该正则表达式中替换为其他字母,我可以使用以C开头但后面不跟数字的名称,但我尝试匹配该正则表达式的任何内容都失败

我错过什么了吗?实际上有没有一种方法可以使用像“C1_测试”这样的命名范围

如果相关的话,我在365办公室

谢谢

似乎“类似”一个单元地址也包括“以”一个单元地址开头。我认为最接近的方法是将下划线作为第一个字符或中间字符。例如:
\u C1Test
C\u 1Test


R
C
是特例,因为它们也用于
R1C1
表示法


而且,我同意命名限制没有很好的记录

似乎“类似”一个单元地址也包括“以”一个单元地址开头。我认为最接近的方法是将下划线作为第一个字符或中间字符。例如:
\u C1Test
C\u 1Test
。查找Excel的
R1C1
地址符号。不允许您命名与范围地址冲突的单元格,无论是
A1
style还是
R1C1
style。这不是错误。例如,您不能命名范围
A1
,因为该名称是工作表中第一个单元格的地址。如果您可以命名另一个范围
A1
,那么Excel将无法知道您在任何公式中引用的是哪个
A1
。同样的情况也适用于与
R1C1
样式中的地址冲突的名称。Excel将不允许您使用与范围地址冲突的名称产生歧义。@谢谢您的反馈。我知道我不能使用一个确切的现有单元格地址作为命名范围,为什么。在我看来,不能用
C\d+
开始一个名字是一个bug。再次注意,“A1_测试”是可以的,而“C1_测试”不是,所以这不仅仅是对禁止名称匹配现有单元地址的过分热情的扩展。如果后者因“太像单元地址”而被禁止,则前者也应如此。
R
C
是特例,因为它们也用于
R1C1
表示法。而且,我同意命名限制没有很好的记录。