Ändern Sie den Namen der ActiveX-Befehlsschaltfläche mit VBA in Excel
Ich versuche, die Namenseigenschaft von ActiveX-Befehlsschaltflächen mit VBA mit dem folgenden Code zu ändern:
Set shp = ActiveSheet.Shapes(Selection.Name)
With shp.OLEFormat.Object
.Object.Caption = "Node" & Str(NumNodes)
.Name = "Node" & Str(NumNodes)
End With
Ich kann den Beschriftungsnamen ändern, aber die Namenseigenschaft kann mit dem obigen Code nicht geändert werden. Ich muss einen Weg finden, um einen String mit einem int (NumNodes) für die Eigenschaft name zu verketten.
AKTUALISIEREN
Dies ist die vollständige Unterroutine, die eine Befehlsschaltfläche kopiert und an einer bestimmten Zellenposition einfügt. Eigenschaften wie der Name und die Beschriftung werden beim Erstellen der Schaltfläche ebenfalls geändert.
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