VBA复选框名称长度限制

VBA复选框名称长度限制,vba,excel,Vba,Excel,我只有一个简单的问题。excel VBA对复选框名称是否有限制 我有这样的代码,当我使用超过33个字符的名称时,我有一个错误,无法设置checkbox类的name属性(它只是一个测试代码) 那么这里有什么方法可以绕过这个问题吗 Sub createTestBox() Dim shimSheet As Worksheet Set shimSheet = Sheets("ShimSheet") Dim chkbox As checkBox Dim i As L

我只有一个简单的问题。excel VBA对复选框名称是否有限制

我有这样的代码,当我使用超过33个字符的名称时,我有一个错误,无法设置checkbox类的name属性(它只是一个测试代码)

那么这里有什么方法可以绕过这个问题吗

 Sub createTestBox()

    Dim shimSheet As Worksheet
    Set shimSheet = Sheets("ShimSheet")

    Dim chkbox As checkBox

    Dim i As Long

    Dim name As String
    name = ""

    For i = 1 To 50
        name = name & "a"
        With shimSheet.Cells(12 + i, 3)

            shimSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).name = name
            shimSheet.CheckBoxes(name).Delete
        End With
    Next i

End Sub

无论何时遇到这种限制,只需使用内置的office帮助即可。但是,为了在您的情况下充分利用帮助,请手动尝试更改控件的名称,您将看到如下所示的错误

只需单击“帮助”,它将带您进入“您有internet连接:”)中的相关MSDN页面

请参考链接

如果链接死了

不是合法的对象名称:“项”

Office 2013及更高版本的其他版本

表单和控件名称必须以字母开头,并且可以是最大值 共40个字符-包括字母、数字和下划线(33;)。 请注意,窗体或控件的Name属性与 标签属性-标题、文本和值-该标签或显示 运行时控件的内容。这些属性可以是 受限关键字,可以以数字开头,也可以包含 非字母数字字符


我在这里看到了同样的问题:。显然,这是限制。您可以直接在Excel UI中看到它,其中我的Excel 2013将其限制为31个字符。您可以使用字母数字名称:“a1”、“a2”……Microsoft文档中没有关于最大名称长度的任何信息,但我找不到一种方法可以获得超过33个字符。如果不需要重复使用“a”,那么@user3598756有一个很好的建议@PartyHatPanda这不是关于重复A。这只是我的测试用例,以找出excel失败的原因:)我的想法是有一些复选框树结构,带有父子引用。但名字太长了…好的一点,我只是想在Excel手册中输入更长的名字(一切都很好)。复选框甚至是用这个名字创建的,但之后我就不能访问他了。