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

问题描述

我正在处理一个宏,在其中我需要命名一系列范围,而我刚遇到一个模糊的限制。

Apparently命名范围可以是单个字母,但'r','R','c'或'C'除外,当在Excel名称框中键入时,它们是选择整行或活动单元格的列(一种我从未需要且无法想象自己需要的功能)。

对我来说不幸的是:a)我需要使用/^C\d+_.*/格式来命名范围,并且b)我在此上看到的一些文档(不是来自Microsoft的正式文件)说,你只是受限制了通过使用单个字母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_Test”之类的命名范围?

如果合适的话,我在Office 365中。

谢谢。

enter image description here

解决方法

似乎“类似于”单元格地址也包括“以...开头”单元格地址。我认为最接近您的是将下划线作为第一个字符,或作为一个中间字符。例如:_C1TestC_1Test

RC是特殊情况,因为它们也用在R1C1表示法中。

而且,我同意没有充分记录命名限制