微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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表示法中。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。