Есть ли способ точного позиционирования и определения размера новой опции в VBA или макросе?

Код, который я использую, вставляет новую кнопку «Option», в которой в настоящий момент на листе выбирается любая ячейка.

Если вы снова запустите код, он вставит 2-ю кнопку точно поверх первой.

Он также устанавливает размер кнопок выбора для размера выбранной ячейки.

Что мне нужно сделать, это указать в коде ячейку, в которую я хочу вставить новую опциональную кнопку, F15, и установить точный размер кнопки и положение влево / вправо и вверх / вниз.

Это сделано для того, чтобы кнопка «Option» всегда вставлялась в одну и ту же ячейку, в одно и то же положение и каждый раз в один и тот же размер.

Можно ли это сделать?

Код для создания / вставки новой кнопки выбора:

Sub AddOptionButton()
    With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top, 
Selection.Width, Selection.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub

1 ответ1

0

В общем, вы хотите избежать использования выделений в коде

Вы можете назначить диапазон переменной и поместить в нее кнопку:

Sub AddOptionButton()
    Dim myRange as Range

    Set myRange = Range("C3")
    With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub

Но может быть лучше передать диапазон функции:

Function AddOptionButton(myRange as Range)
    With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Function

Который вы можете позвонить из любой точки вашего Sub:

Call AddOptionButton(Range("F15"))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .