I denne artikel vil vi oprette en makro for at slette en anden makro fra et modul.
Vi bruger modul 1, som indeholder SampleProcedure som prøve -makro, som vi vil slette.
Kode forklaring
Indstil VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule
Ovenstående kode bruges til at oprette et objekt i det definerede modul.
ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc)
Ovenstående kode bruges til at hente startlinjenummeret for den definerede procedure.
ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)
Ovenstående kode bruges til at hente antallet af linjer i den definerede procedure.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Ovenstående kode bruges til at slette alle linjer inden for den definerede procedure.
Følg venligst nedenstående for koden
Option Eksplicit 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 for projektmappemodul Sæt VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Kontrol af, om proceduren findes i kodemodulen Hvis ikke VBCM er noget, så er ProcStartLine = 0' Funktion, der tildeler linjenr. startlinjen for proceduren ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Hvis ProcStartLine> 0 Herefter 'Funktion tildele nr. af linjer i proceduren ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Slet alle linjer i proceduren VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure ()' Declare Dim modulnavn, procedurnavn som streng 'Henter værdi for modul- og procedurnavn fra tekstbokse ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, ProcedureName End Sub Sub
Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet