在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模块中
将对象作为引用,而不是Select
,然后设置标题:
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"
使用当前代码,您可以在创建Selection.Caption = "NewCaption"
后立即执行它(这样您就不会丢失选择(
不过,我可能想将togglebutton分配给一个对象变量,以防您想对它执行任何操作。事实上,我尽量避免选择。。。
如果它只有一个切换按钮(并且您没有更改它的默认名称(,您可以使用默认索引名称来引用它,这样您就可以更改它的标题。
所以你会使用:
ActiveSheet.OLEObjects("ToggleButton1").Object.Caption = "Your Caption"
如果您使用Add方法添加了多个控件,并且通常情况下,您会更好地将它们分配给变量并从那里开始工作。