无法删除行及其上的组合框

时间:2019-10-08 14:22:48

标签: excel vba combobox activex

当用户在特定列中添加文本时,我有一个工作表创建ActiveX组合框。 具体来说,用户在A列的单元格中输入一个字符串,然后输入一个宏,然后获取文本并在同一单元格上创建一个组合框。

现在,我想在新创建的组合框旁边添加一个删除按钮,以删除同一行。

我也设法创建了组合框和按钮,但是有时“行删除”时出现错误:特别是正确删除了该行,但组合框仍然存在。我不明白这个问题,因为它并非每次都会发生。

我如何添加组合框和删除按钮(在Worksheet_change处理程序中):

    Dim cb As OLEObject

    Set cb = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, DisplayAsIcon:=False, Left:=targ.Left, Top:=targ.Top, Width:=targ.Width, Height:=targ.Height)
    cb.LinkedCell = targ.Address

    For Each cell In paramRange
        cb.Object.AddItem cell.value
    Next cell

    Dim delBtn As Button
    Set delBtn = ActiveSheet.Buttons.Add(ActiveSheet.Cells(targ.row, 13).Left, ActiveSheet.Cells(targ.row, 13).Top, ActiveSheet.Cells(targ.row, 13).Width, ActiveSheet.Cells(targ.row, 13).Height)

    With delBtn
        .OnAction = "DeleteLine"
        .Caption = "DELETE"
        .name = targ.row
    End With

与删除按钮的按下相关的宏:

For Each OleObj in ActiveSheet.Rows(CInt(Application.Caller.row)).OLEObjects 
   oleObj.Delete
Next oleObj.Delete

Rows(CInt(ActiveSheet.Shapes(Application.Caller).name)).Delete

就像我说的那样,大多数情况下,相关行和关联的组合框都被很好地删除了,但是有时只有该行被删除,而组合框仍然挂着。

0 个答案:

没有答案