Как перебрать CommandButton на Sheet1 с помощью For next loop - PullRequest
0 голосов
/ 09 апреля 2019

Итак, я хочу установить заголовок для командных кнопок в соответствии со строками A1 - D1 на листе 3

Dim buttonname as String
Dim i as Integer

For i = 1 to 5 
buttonname = "Commandbutton" & i

buttonname.Caption = Worksheets(sheet3).Cells(1,i)

Next

Похоже, этот код не работает, необходимо использовать элементы управления, но когда я пытался использовать элементы управления, я могуне настроено на изменение командных кнопок

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

buttonname - это строка, а не объект. Сначала вам нужно найти объект, а затем изменить заголовок / текст

Однако это будет зависеть от того, используете ли вы элемент управления формой или элемент управления ActiveX:

'ActiveX Control
Worksheets("sheet3").OLEObjects(i).Object.Caption = buttonname
'Form Control
Worksheets("sheet3").Shapes(i).OLEFormat.Object.text
0 голосов
/ 09 апреля 2019

Это один из многих способов, зациклить все фигуры на листе, проверить кнопки, переименовать.

Sub listButtons()
    Dim shp As Shape
    Dim row As Long
    For Each shp In ThisWorkbook.Sheets("Sheet1").Shapes
        If shp.Name Like "Button*" Then
            row = row + 1
            shp.OLEFormat.Object.Text = Range("A" & row).Value
        End If
        'Select Case as an Alternative to the If approach
        Select Case shp.Name
            Case "Button 2"
                shp.OLEFormat.Object.Text = ThisWorkbook.Sheets("Sheet1").Range("A2").Value
            Case "Button 3"
                shp.OLEFormat.Object.Text = ThisWorkbook.Sheets("Sheet1").Range("A3").Value
            Case Else
                'Do nothing if not Button 2 or 3
        End Select
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...