2016-09-21 76 views
2

我只是简单的问题。在这里有一些限制在Excel VBA复选框名称?VBA复选框名称长度限制

我有这样的代码,并在使用名称超过33个字符长的IM,我有错误无法设置CheckBox类的名称属性(其唯一的测试代码)

所以在这里某种方式绕过这个?

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 
+0

我这里看到了同样的问题:https://social.msdn.microsoft.com/Forums/office/en-US/72201c7c-81e6-4f6a-b109-ddad86dc8e59/bug-naming-activex-checkbox- in-excel-2010?forum = exceldev。显然这是极限。 – Marco

+2

您可以直接在Excel用户界面中看到它,我的Excel 2013将其限制为31个字符。您可以使用字母数字名称:“a1”,“a2”,... – user3598756

+0

Microsoft文档没有任何有关最大名称长度的信息,但我无法找到解决方法以获取超过33个字符。如果没有必要重复使用“a”,@ user3598756有一个很好的建议! – PartyHatPanda

回答

3

当你面对这样那样的限制,只需使用内置的Office帮助。然而,为了帮助最好用在你的情况,请尝试手动改变控制的名字,你会看到一个错误如下图所示

enter image description here

只需点击帮助,它会带你到在你有关MSDN页面有互联网连接:)

请参阅链接Not a legal object name

在情况下,链接死亡

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

办公室2013年和以后的其他版本

窗体和控件的名称必须以字母开头,可以是最多40个的 人物 - 包括字母,数字和下划线( _)。 请注意,表单或控件的名称属性与标签属性 - 标题,文本和值不同 - 它们在运行时标记或显示控件的内容。这些属性可以是受限关键字 ,可以以数字开头,也可以包含 非字母数字字符。

+0

好点,我只是想在Excel中输入更长的名字manualy(并且一切都很好)。复选框甚至创建了这个名字,但之后我无法访问他。 –