ReferenceИзменить название ActiveX Command Button с помощью VBA в Excel
Я пытаюсь изменить имя свойства командных кнопок ActiveX с помощью VBA со следующим кодом:
Set shp = ActiveSheet.Shapes(Selection.Name)
With shp.OLEFormat.Object
.Object.Caption = "Node" & Str(NumNodes)
.Name = "Node" & Str(NumNodes)
End With
я в состоянии изменить caption name, но свойство name не может быть изменено с помощью вышеуказанного кода. Мне нужно найти способ конкатенации строки с int (NumNodes) для свойства name.
UPDATE
Это полная подпрограмма, которая копирует командную кнопку, и вставляет его в определенном месте клетки. Свойства, такие как имя и подпись, также изменяются при создании кнопки.
Public Sub Node_Button_Duplication()
'
'Comments: Copies and pastes Node 1's button to the appropriate column
Dim shp As Shape
' Copy Node 1 button and paste in appropriate location
ActiveSheet.Shapes("CommandButton1").Select
Selection.Copy
Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft 47.25
Selection.ShapeRange.IncrementTop -13.5
Set shp = ActiveSheet.Shapes(Selection.Name)
With shp.OLEFormat.Object
.Object.Caption = "Node" & Str(NumNodes)
.Name = "Node" & Str(NumNodes)
End With
End Sub
Да. В результате имя кнопки команды остается как «CommandButton4». – Ehudz
Я просто попробовал. Он изменяет имя только что созданной кнопки команды –
Вы уверены, что это изменяет как ** NAME **, так и ** Caption **, а не только ** Caption **? В редакторе VB поле имени все еще говорит CommandButton4 после создания кнопки – Ehudz