Löschen eines Prozedur aus einem Modul mit VBA in Microsoft Excel
In diesem Artikel erstellen wir ein Makro, um ein anderes Makro aus einem Modul zu löschen.
Wir verwenden Modul1, das SampleProcedure enthält, als Beispielmakro, das wir löschen möchten.
Code Erklärung
Setzen Sie VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule Mit dem obigen Code wird ein Objekt des definierten Moduls erstellt.
ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc)
Der obige Code wird verwendet, um die Startzeilennummer der definierten Prozedur zu erhalten.
ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)
Der obige Code wird verwendet, um die Anzahl der Zeilen in der definierten Prozedur zu ermitteln.
VBCM.DeleteLines ProcStartLine, ProcLineCount Der obige Code wird verwendet, um alle Zeilen innerhalb der definierten Prozedur zu löschen.
Bitte folgen Sie unten für den Code
Option Explicit Sub DeleteProcedureCode(ByVal DeleteFromModuleName As String, ByVal ProcedureName As String) 'Declaring variables Dim VBCM As CodeModule, ProcStartLine As Long, ProcLineCount As Long Dim WB As Workbook On Error Resume Next 'Creating object of active workbook Set WB = ActiveWorkbook 'Creating object of workbook module Set VBCM = WB.VBProject.VBComponents(DeleteFromModuleName).CodeModule 'Checking whether the procedure exist in the codemodule If Not VBCM Is Nothing Then ProcStartLine = 0 'Function assigning the line no. of starting line for the procedure ProcStartLine = VBCM.ProcStartLine(ProcedureName, vbext_pk_Proc) If ProcStartLine > 0 Then 'Function assign the no. of lines in the procedure ProcLineCount = VBCM.ProcCountLines(ProcedureName, vbext_pk_Proc) 'Delete all the lines in the procedure VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure() 'Declaring variables Dim ModuleName, ProcedureName As String 'Getting value for module and procedure name from textboxes ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value 'Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, ProcedureName End Sub
Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]