2016-09-30 5 views
0

Ich habe andere Fragen im Zusammenhang mit dem Aufruf eines Moduls in einem Sub überprüft, aber die Lösungen scheinen nicht auf meinen Fall anwendbar. Ich versuche, Code innerhalb eines Moduls auszuführen, wenn es eine Änderung in einem Textfeld des Benutzerformulars gibt, das ich Filepath1 genannt habe.Aufruf eines Moduls innerhalb eines Sub

Unten ist eine Kopie des Codes, den ich ausführen möchte. Jedes Mal bekomme ich einen Kompilierfehler "Erwartete Variable oder Prozedur, nicht Modul." Um zu bestätigen, ist der Name meines Moduls nicht identisch mit irgendeinem anderen Namen im Sub- oder Benutzerformular. Jeder Rat wird geschätzt!

Private Sub Filepath1_Change() 
    Call ChangeFilepath 
End Sub 
+0

Wenn Excel ein Modul "sieht", muss es einen mit demselben Namen wie ein Unterprogramm, eine Funktion oder eine Variable geben. Ist eine Zeile markiert, wenn der Fehler auftritt? Vielleicht ist das Modul in einem anderen offenen Buch? – Hrothgar

Antwort

1

In den meisten Fällen kann das Modul sicher ignoriert werden. Sie versuchen nicht, ein Modul auszuführen, Sie versuchen, eine Subroutine auszuführen, die in einem Modul gespeichert ist, und solange sie nicht auf privat gesetzt ist, sollten Sie den Modulnamen nicht angeben müssen.

Wenn Sie ein Makro namens "ChangePath" in einem Modul namens "UpdateFilepath" hatten, wäre Ihr Anruf Call ChangePath.

+0

Es kann eine Komplikation geben - das OP kann eine Subroutine namens "ChangePath" in einem Modul namens "ChangePath" haben, in diesem Fall müssen sie den Namen der Subroutine qualifizieren und 'Call ChangePath.ChangePath' verwenden. – YowE3K

Verwandte Themen