VBA Как л oop через столбцы - PullRequest
0 голосов
/ 22 марта 2020

Этот код добавляет кнопку вращения в каждом ряду. Как я мог написать это, чтобы добавить кнопку вращения в каждом столбце ... Допустим, я хочу добавить кнопку вращения в A1, B1, C1 ... G1.

Dim i As Integer
For i = 1 To 7
    ActiveSheet.Spinners.Add(Range("A" & i).Left, Range("A" & i).Top, 69.5, 20).Select
Next

1 Ответ

1 голос
/ 22 марта 2020

Если вы l oop над элементами диапазона, не имеет значения, пересекаете ли вы столбцы или строки. Вот пример Button:

Sub BoxAdder()
    Dim rng As Range, r As Range, bt As Button, s As Shape
    Set rng = Range("A1:G1")

    For Each r In rng
        ActiveSheet.Buttons.Add(94.5, 75.75, 51, 27.75).Select
        Set bt = Selection
        bt.Characters.Text = r.Address(0, 0)
        Set s = ActiveSheet.Shapes(Selection.Name)
        With s
            .Top = r.Top
            .Left = r.Left
            .Width = r.Width
            .Height = r.Height
        End With
    Next r
End Sub

Код размещает кнопки в ячейках A1, B1, C1, D1, E1. F1 и G1 последовательно. Чтобы расположить кнопки вниз по столбцу, просто измените:

Set rng = Range("A1:G1")

на:

Set rng = Range("A1:A4")

Обратите внимание, что для целей перемещения и определения размера каждый Button рассматривается как Shape.

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