Wie lautet der Befehl für den Namen der aktuellen Prozedur in einem Modul?
Danke für die Antwort.
Option Explicit
Sub MakroListe()
Dim vbc As Object, iRow As Integer, iCol As Integer, iCounter As Integer, sMacro As String
Cells.Clear
Rows(1).Font.Bold = True
For Each vbc In ThisWorkbook.VBProject.VBComponents
iRow = 1
iCol = iCol + 1
Cells(iRow, iCol).Value = vbc.Name
With vbc.CodeModule
For iCounter = 1 To .CountOfLines
If .ProcOfLine(iCounter, 0) > "" Then
sMacro = .ProcOfLine(iCounter, 0)
If sMacro <> Cells(iRow, iCol) Then
iRow = iRow + 1
Cells(iRow, iCol).Value = sMacro
End If
End If
Next iCounter
End With
Next vbc
Columns.AutoFit
End Sub
Um den Namen einer Prozedur in Excel VBA zu ermitteln, kannst du den folgenden VBA-Code verwenden, der alle Prozeduren in einem Modul auflistet. Dieser Code gibt dir eine Übersicht der Prozedurnamen, was besonders hilfreich ist, wenn du mit vielen Modulen arbeitest.
Option Explicit
Sub MakroListe()
Dim vbc As Object, iRow As Integer, iCol As Integer, iCounter As Integer, sMacro As String
Cells.Clear
Rows(1).Font.Bold = True
iRow = 1
iCol = 1
For Each vbc In ThisWorkbook.VBProject.VBComponents
Cells(iRow, iCol).Value = vbc.Name
With vbc.CodeModule
For iCounter = 1 To .CountOfLines
If .ProcOfLine(iCounter, 0) <> "" Then
sMacro = .ProcOfLine(iCounter, 0)
If sMacro <> Cells(iRow, iCol) Then
iRow = iRow + 1
Cells(iRow, iCol).Value = sMacro
End If
End If
Next iCounter
End With
iRow = iRow + 1
Next vbc
Columns.AutoFit
End Sub
Führe den Code aus, um eine Liste der Prozeduren in deinem aktuellen VBA-Projekt zu erhalten.
Fehler: "Objekt nicht gefunden"
Dieser Fehler tritt auf, wenn du versuchst, auf ein nicht existierendes Modul zuzugreifen. Stelle sicher, dass alle Module in deinem Projekt vorhanden sind.
Lösung: Überprüfe die Namen der Module und stelle sicher, dass sie korrekt sind.
Eine alternative Methode zur Ermittlung des Prozedurnamens ist das Verwenden einer MsgBox
, die den Namen der Prozedur anzeigt, während sie läuft. Du kannst dies am Anfang jeder Prozedur hinzufügen:
Sub BeispielProzedur()
MsgBox "Jetzt laufe ich, Sub BeispielProzedur"
' Dein Code hier
End Sub
Diese Methode ist einfach und ermöglicht es dir, sofort zu wissen, welche Prozedur aktiv ist.
Hier sind einige Beispiele, wie du den oben genannten Code für unterschiedliche Zwecke anpassen kannst:
Prozeduren in einem bestimmten Modul auflisten: Ändere die Schleife, um nur ein bestimmtes Modul zu durchsuchen.
Prozeduren nach Typ filtern: Du kannst den Code so anpassen, dass er nur Subs oder Functions auflistet, je nach deinen Anforderungen.
1. Wie kann ich den Namen der aktuellen Prozedur während der Ausführung ermitteln?
Es gibt keine direkte Möglichkeit, den Namen der laufenden Prozedur zu ermitteln. Du kannst jedoch eine MsgBox oder eine Prozedur wie im Schritt-für-Schritt-Anleitung beschrieben verwenden.
2. Warum sind die Namen der Prozeduren wichtig?
Die Namen helfen dir, den Überblick über deinen Code zu behalten und schnell zu verstehen, welche Funktionalitäten in deinem VBA-Projekt vorhanden sind.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen