Ändern Sie den Namen der ActiveX-Befehlsschaltfläche mit VBA in Excel

Referenz

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage