Переместите две кнопки в одном диапазоне и отобразите их рядом друг с другом - PullRequest
0 голосов
/ 25 января 2020

У меня есть две buttons в моей электронной таблице, и я использую следующий VBA для перемещения обеих кнопок в Range("D12:D12"):

Sub Move_Buttons()

Set Range_01 = Sheet1.Range("D12:D12")
With Sheet1.Buttons("Button 1")
.Top = Range_01.Top
.Left = Range_01.Left
.Width = Range_01.Width
.Height = Range_01.Height
End With

Set Range_02 = Sheet1.Range("D12:D12")
With Sheet1.Buttons("Button 2")
.Top = Range_02.Top
.Left = Range_02.Left
.Width = Range_02.Width
.Height = Range_02.Height
End With

End Sub

Пока все это прекрасно работает.


Как вы можете видеть в моем коде, обе кнопки перемещены в Range("D12:D12"), поэтому они лежат друг над другом в этой ячейке.
Теперь мне интересно, есть ли способ поместить обе кнопки рядом друг с другом в пределах Range("D12:D12"), чтобы пользователь все еще мог видеть их обе?

Я знаю, что смогу совмещать выдает
a) помещение одной из кнопок в Range("E12:E12")
b) ручное присвоение ей условия .Top Left .Width .Height

Однако я бы предпочел гибкое решение, в котором обе кнопки остаются в Range("D12:D12"), но с .Width из 50/50.

1 Ответ

1 голос
/ 25 января 2020

Однако я бы предпочел гибкое решение, в котором обе кнопки остаются в диапазоне («D12: D12»), но с шириной 50/50.

Logi c

  1. Width обеих кнопок становится наполовину.
  2. Расположение второй кнопки будет после первой кнопки. Left Button1 + Width Button1.

Код

Это то, что вы пытаетесь? Кроме того, поскольку вы имеете дело с тем же диапазоном, вам не нужно Range_01 и Range_02. Один будет делать.

Sub Move_Buttons()
    Dim Range_01 As Range

    Set Range_01 = Sheet1.Range("D12:D12")

    With Sheet1.Buttons("Button 1")
        .Top = Range_01.Top
        .Left = Range_01.Left
        .Width = Range_01.Width / 2 '<~~ This becomes half
        .Height = Range_01.Height
    End With

    With Sheet1.Buttons("Button 2")
        .Top = Range_01.Top
        '~~> And this changes as mentioned above in the LOGIC section
        .Left = Sheet1.Buttons("Button 1").Left + Sheet1.Buttons("Button 1").Width
        .Width = Range_01.Width / 2 '<~~ This becomes half
        .Height = Range_01.Height
    End With
End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...