I den här artikeln kommer vi att skapa ett makro för att ta bort ett annat makro från en modul.
Vi använder modul 1, som innehåller SampleProcedure som provmakrot, som vi vill ta bort.
Kodförklaring
Ange VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule
Ovanstående kod används för att skapa ett objekt för den definierade modulen.
ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc)
Ovanstående kod används för att få startnummer för den definierade proceduren.
ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)
Ovanstående kod används för att få räkningen av antalet rader i den definierade proceduren.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Ovanstående kod används för att radera alla rader inom det definierade förfarandet.
Följ koden nedan
Alternativ 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 objekt för arbetsboksmodul Ange VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Kontrollerar om proceduren finns i kodmodulen Om inte VBCM är ingenting Då är ProcStartLine = 0' Funktion som tilldelar radnr. av startlinjen för proceduren ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Om ProcStartLine> 0 Därefter 'Funktion tilldela nr. antal rader i proceduren ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Radera alla rader i proceduren VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure ()' Declare Dim ModuleName, ProcedureName As String 'Skaffa värde för modul- och procedurnamn från textrutor ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, ProcedureName End Sub Sub
Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen