2016-03-31 13 views
2

Ich versuche, meinen Code zu bauen, die einen Sub mit einem String auf Antworten auf diese Frage basiert ruft Trying to call a Sub with a String - VBA von Application.Run oder CallByName verwenden, aber ich bin immer:Rufen Sie einen Sub mit einem String - VBA

Laufzeitfehler ‚1004‘: Anwendungs ​​definiert oder Objekt definierte Fehler

, wenn ich versuche Application.Run

und

Laufzeitfehler '438': Objekt diese Eigenschaft oder diese Methode nicht supprot

wenn ich CallByName versuchen.

Aufruf auch als Subs bezeichnet sind im selben Blatt Sheets("Rozpad_hodnocení").

Ich versuche, alle Optionsfelder mit der Indexnummer im Namen auf diesem Blatt zu durchlaufen, um Obuttons mit "ne" im Namen zu finden, der funktioniert. Mit diesem gefundenen Index möchte ich ein Sub mit der gleichen Indexnummer und "ne" im Namen aufrufen. Genannt Subs sind wie folgt aus:

OB9Ne_Click() 
OB10Ne_Click() 
OB11Ne_Click() 

Ich kann nicht meinen Code bewegen oder Modul

Hier Probe eines Codes zu bilden:

Sub adsf() 
    Dim s As Shape 
    Dim Pro As String 
    For Each s In Sheets("Rozpad_hodnocení").Shapes 
     If s.Type = 12 And s.Name Like "*Ne" Then 
      Pro = s.Name + "_Click()" 
      Application.Run Pro 
      'CallByName List3, Pro, VbMethod 
      'CallByName Sheets("Rozpad_hodnocení"), Pro, VbMethod 
     End If 
    Next 
End Sub 

Vielleicht ist die Antwort allready in vorherigen Frage , aber ich habe es nicht geschafft meinen Code daran anzupassen.

+0

Ist 'OB9Ne_Click()' public? – SWa

+1

Wenn es sich um ein Blattmodul handelt, müssen Sie 'CallByName' verwenden, indem Sie die Klammern aus der' Pro'-Variable entfernen. –

Antwort

0

Dank @Kyle habe ich die Subs in Public geändert, @Macro Man schlug vor, die Klammern aus Pro zu entfernen, und mit der Kombination funktioniert das.

Verwandte Themen