2017-02-08 7 views
0

Я бегу в стену, когда дело доходит до добавления кнопок в VBA.Кнопки VBA, которые могут перемещаться?

У меня есть таблица, в которой потенциально могут быть расширены строки или добавлены строки. Прямо сейчас, единственный способ я знаю, как добавить кнопки с помощью макроса (т.е. при нажатии на эту кнопку, еще три кнопки появляется ниже) с системой координат

With ActiveSheet.CheckBoxes.Add(185, 464, 72, 18) 
    .Name = "firstcheckbox" 
    .Caption = "CLICK ME" 
End With 

Однако, если кто-то добавляет строки выше в до того, как они нажмут кнопку создания кнопки, эти координаты перестают быть хорошими, и три кнопки отображаются выше, чем я хотел бы их.

Я разрушил свой мозг, пытаясь исследовать это. Есть ли какой-то очевидный способ создания этих кнопок с ячейкой вместо координат, так что неважно, сколько строк добавлено выше?

With ActiveSheet.CheckBoxes.Add.Range("C6") 
    .Name = "firstcheckbox" 
    .Caption = "CLICK ME" 
End With 

или что-то в этом роде? Или я ограничена системой координат?

Любая помощь была бы принята с благодарностью!

ответ

2

Просто получить Left и Top свойства из диапазона, а затем передать их Checkboxes.Add:

With ActiveSheet.CheckBoxes.Add(Range("C6").Left, Range("C6").Top, 72, 18) 
    .Name = "firstcheckbox" 
    .Caption = "CLICK ME" 
End With 
+0

Большое спасибо! Я предполагаю, что это все еще дает мне вопрос об изменении ячейки, когда добавляется строка в любом случае, но серьезно эта проблема преследовала меня в течение некоторого времени. – ladymrt