У меня есть лист, создающий списки 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
Как я уже говорил, в большинстве случаев соответствующая строка И соответствующий комбинированный список удаляется красиво, но иногда удаляется только строка, в то время как комбинированный список все еще висит на своем месте. .