Я использую следующий скрипт для создания кнопок в excel, диапазон - именно там, где я бы хотел его разместить.Удаление коллекций кнопок VBA
Sub CreateAddButton(rng As Range)
Dim btn As Button
With Worksheets("User")
Set btn = .Buttons.Add(rng.Left, rng.Top, rng.width, rng.Height)
With btn
.name = "Add"
.Caption = "Add Column"
.OnAction = "CreateVariable"
End With
End With
End Sub
Проблема только в том, что мне нужен метод, который может удалить все кнопки, созданные этим методом? Я хочу, если это возможно, избегать глобальных переменных. Любая помощь будет получена с благодарностью. James
Вы можете пометить все кнопки, используя определенный префикс или суффикс в имени: тогда вы могли бы цикл через все кнопки на листе и удалить все, где имя содержит этот префикс/суффикс. –
Для этого мне понадобится какая-то golbal-переменная, и я пытаюсь избавиться от всех глобальных переменных, поскольку они теряют свою ценность, если есть ошибка в excel. – James
Зачем вам нужна глобальная переменная? Вы этого не сделаете! (Если вы не сосчитаете весь экземпляр Excel как глобальную переменную ...) См. Реализацию @ brettdj. –