创建一个 ToggleButton 并在 EXCEL VBA 上以编程方式更改其标题

Create a ToggleButton and change its caption programmatically on EXCEL VBA

在我的 VBA 代码中,我创建了一些新的表格并添加了按钮和切换按钮。我没有问题,但我想在不单击的情况下更改 ToggleButton 标题。

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

你有什么想法吗?

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 模块中

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

不过,我可能想将该切换按钮分配给一个对象变量,以防您想进一步对其进行任何操作。事实上,我会尽量避免 Select...

将 object 作为参考,而不是 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"

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

所以你会使用:

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

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