gpt4 book ai didi

excel - 如何使用 Excel VBA 为动态创建的对象分配引用

转载 作者:行者123 更新时间:2023-12-04 20:27:32 25 4
gpt4 key购买 nike

有一些类似问题的答案,但没有一个对我有用。它们中的大多数都面向表单,而我正在尝试将对象直接添加到 Excel 工作表中。除此之外,对于不应该那么困难的事情,几乎所有的解决方案都非常复杂。

这是我正在寻找的简单的东西 - 但我需要它用于 ToggleButton 和 ComboBox。下面的代码适用于 CommandButton,但据我所知,它似乎没有其他 ActiveX 对象类型的模拟。

Sub AddButtons()
Dim ws As Excel.Worksheet
Dim btn As Button

For Each ws In ThisWorkbook.Worksheets
Set btn = ws.Buttons.Add(10, 20, 30, 40)
Debug.Print ws.Name
' MySub_[worksheet name] will be executed when btn is clicked
btn.OnAction = "MySub_" & ws.Name
btn.Caption = ws.Name
' Set additional btn properties as needed
Next ws
End Sub

(我实际上并没有尝试为每个工作表创建一个对象,但这个示例展示了如何循环一些构造并将自定义代码绑定(bind)到每次迭代中创建的对象。)

谢谢!

最佳答案

Activex 控件是 OLEObjects。我在下面展示了如何添加复选框。

Sub AddButtons()
Dim ws As Worksheet
Dim btn As OLEObject
Debug.Print ("Start")
For Each ws In ThisWorkbook.Worksheets
Set btn = ws.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=True, _
DisplayAsIcon:=False, left:=10, top:=10, width:=20, _
height:=20)
Debug.Print (ws.Name)
Next ws
End Sub

关于excel - 如何使用 Excel VBA 为动态创建的对象分配引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com