所以我想根据工作表3中的A1到D1字符串设置命令按钮上的标题
Dim buttonname as String
Dim i as Integer
For i = 1 to 5
buttonname = "Commandbutton" & i
buttonname.Caption = Worksheets(sheet3).Cells(1,i)
Next
该代码似乎无法正常工作,需要使用Controls,但是当我尝试使用Controls时,我无法将其设置为更改命令按钮
答案 0 :(得分:1)
buttonname
是一个字符串,而不是一个对象。您首先需要找到对象,然后更改标题/文本
但是,这取决于您使用的是窗体控件还是ActiveX控件:
'ActiveX Control
Worksheets("sheet3").OLEObjects(i).Object.Caption = buttonname
'Form Control
Worksheets("sheet3").Shapes(i).OLEFormat.Object.text
答案 1 :(得分:0)
这是一种方法,在工作表中循环所有形状,检查按钮,重命名。
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