Private Sub per Makro aufrufen
Schritt-für-Schritt-Anleitung
Um einen Private Sub
in Excel über ein Makro auszulösen, kannst du folgende Schritte befolgen:
-
Code verschieben: Übertrage den Code aus der Private Sub SpinButton1_SpinUp()
in eine normale Sub-Prozedur in einem allgemeinen Modul.
Beispiel:
Sub MainProcedure()
' Dein Code hier
End Sub
-
Ereignisprozedur anpassen: In der SpinButton1_SpinUp()
-Ereignisprozedur rufst du nun die neue Prozedur auf:
Private Sub SpinButton1_SpinUp()
Call MainProcedure
End Sub
-
Makro ausführen: Du kannst jetzt das Makro aufrufen, um die Funktionalität beizubehalten.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du nicht den Code in ein allgemeines Modul verschieben möchtest, kannst du auch den folgenden Ansatz verwenden:
-
Zugriff auf den Private Sub: Verwende eine öffentliche Sub, die den Private Sub
durch den Einsatz von Application.Run
aufruft.
Beispiel:
Public Sub RunPrivateSub()
Application.Run "MeinWorkbook!SpinButton1_SpinUp"
End Sub
Dies ermöglicht es dir, den Private Sub
aus einer anderen Prozedur heraus aufzurufen.
Praktische Beispiele
Hier ist ein praktisches Beispiel, das zeigt, wie du einen Private Sub
über ein Makro aufrufen kannst:
-
Erstelle ein allgemeines Modul und füge folgenden Code hinzu:
Sub MainProcedure()
MsgBox "Der Spin-Button wurde betätigt!"
End Sub
-
Ändere die SpinButton1_SpinUp()
-Ereignisprozedur:
Private Sub SpinButton1_SpinUp()
Call MainProcedure
End Sub
-
Wenn du nun den Spin-Button betätigst, wird die Nachricht angezeigt.
Tipps für Profis
-
Verwende Option Explicit
: Setze am Anfang deines Moduls Option Explicit
, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
-
Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Probleme beim Aufruf von Private Subs
zu handhaben.
-
Dokumentation: Kommentiere deinen Code, insbesondere wenn du mehrere Private Sub
und öffentliche Sub-Prozeduren hast. Dies erleichtert die Wartung und das Verständnis des Codes.
FAQ: Häufige Fragen
1. Frage
Kann ich einen Private Sub
direkt ohne Änderungen aufrufen?
Antwort: Nein, Private Subs
sind nur innerhalb des Moduls zugänglich, in dem sie definiert sind. Du musst den Code in eine öffentliche Sub-Prozedur verschieben oder eine öffentliche Sub verwenden, um sie aufzurufen.
2. Frage
Was passiert mit der LinkedCell
, wenn ich den Code verschiebe?
Antwort: Die LinkedCell
bleibt aktiv, solange du sicherstellst, dass der Code, der sie aktualisiert, weiter korrekt implementiert ist. Prüfe den Code nach dem Verschieben, um sicherzustellen, dass er die LinkedCell
wie gewünscht bearbeitet.