【发布时间】:2019-07-30 09:18:39
【问题描述】:
我有一张表格,在其中选择一个单元格时,在该行上创建一个 activex 组合框和一个删除按钮。
当用户按下删除按钮时,它应该删除整行。
Rows(ActiveSheet.Shapes(Application.Caller).TopLeftCell.row).Delete
它有效地删除了除 activex 组合框之外的所有内容。 怎么删除?
代码:
Dim cb as ComboBox
Set cb = ActiveSheet.OLEObjects.add(ClassType:="Forms.ComboBox.1", Link:=False, DisplayAsIcon:=False, Left:=Cells(cfgRows+1,1).Left, Top:=Cells(cfgRows+1,1)).Top, Width:=Cells(cfgRows+1,1).width, Height:=Cells(cfgRows+1,1).height).Object
cb.Name = cfgRows + 1
在网上我只找到了删除工作表中所有组合框的方法
【问题讨论】:
-
我猜那个组合框有一个名字。你可以用它来删除它吗?
-
我没有指定任何名称,因为它们应该以不确定的数字动态添加。我希望从行号开始的解决方案,但我没有像在工作表中那样引用行中的组合框
-
如果您不跟踪组合框,我相信您需要遍历所有组合框并查看它们的位置。听起来效率不高
-
您可以在添加组合框时重命名它们。以后会更容易删除。
-
名称附加到
OLEObject,而不是ComboBox。试试ActiveSheet.OLEObjects.add(ClassType:="Forms.ComboBox.1", Link:=False, DisplayAsIcon:=False, Left:=Cells(cfgRows+1,1).Left, Top:=Cells(cfgRows+1,1)).Top, Width:=Cells(cfgRows+1,1).width, Height:=Cells(cfgRows+1,1).height).Name = cfgRows + 1。
标签: excel vba combobox activex