在EXCEL VBA上创建切换按钮并以编程方式更改其标题

在EXCEL VBA上创建切换按钮并以编程方式更改其标题,excel,vba,togglebutton,Excel,Vba,Togglebutton,在我的VBA代码中,我创建了一些新的图纸,并添加了按钮和切换按钮。我这样做没有问题,但我想在不点击它的情况下更改ToggleButton标题 我认为只有在创建的工作表中编写代码才有可能,我尝试了,但我无法调用我的方法,因为工作表在代码的开头不存在 你知道吗 PS:使用宏创建ToggleButton的代码: ActiveSheet.OLEObjects.Add(ClassType:=""Forms.ToggleButton.1"", Link:=False, DisplayAsIcon:=Fals

在我的VBA代码中,我创建了一些新的图纸,并添加了按钮和切换按钮。我这样做没有问题,但我想在不点击它的情况下更改ToggleButton标题

我认为只有在创建的工作表中编写代码才有可能,我尝试了,但我无法调用我的方法,因为工作表在代码的开头不存在

你知道吗

PS:使用宏创建ToggleButton的代码:

ActiveSheet.OLEObjects.Add(ClassType:=""Forms.ToggleButton.1"", Link:=False, DisplayAsIcon:=False, Left:=1195.5, Top:=77.25, Width:=87.75, Height:=100.5).Select

编辑:我的代码在vba模块中

使用当前代码,您可以在创建代码后立即执行选择。Caption=“NewCaption”(这样您就不会丢失选择)


不过,我可能想将这个togglebutton分配给一个对象变量,以防您想进一步使用它。事实上,我会尽量避免选择…

将对象作为参考,而不是选择它,然后设置标题:

Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ToggleButton.1", Link:=False, DisplayAsIcon:=False, Left:=1195.5, Top:=77.25, Width:=87.75, Height:=100.5)
btn.Object.Caption = "fred"

如果它只有一个切换按钮(并且您没有更改它的默认名称),您可以使用默认索引名称来引用它,以便更改其标题

因此,您可以使用:

ActiveSheet.OLEObjects("ToggleButton1").Object.Caption = "Your Caption"

如果您使用Add方法添加了多个控件,通常情况下,您将有更好的时间将它们分配给一个变量并从那里开始工作。

当我这样做时,出现错误438:Object不支持此属性…您使用的Excel版本是什么?我在2013年使用了复选框和单选按钮进行了尝试,它可以很好地与那些(大多数类似的项目共享一个标题属性)配合使用。我正在使用2016年的一个,也感谢您的帮助