Slett en prosedyre fra en modul ved hjelp av VBA i Microsoft Excel

Anonim

I denne artikkelen vil vi lage en makro for å slette en annen makro fra en modul.

Vi bruker Module1, som inneholder SampleProcedure som prøve -makro, som vi vil slette.

Kode forklaring

Angi VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule

Koden ovenfor brukes til å lage et objekt for den definerte modulen.

ProcStartLine = VBCM.ProcStartLine (Prosedyrenavn, vbext_pk_Proc)

Koden ovenfor brukes til å få startlinjenummeret til den definerte prosedyren.

ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)

Koden ovenfor brukes til å få tellingen av antall linjer i den definerte prosedyren.

VBCM.DeleteLines ProcStartLine, ProcLineCount

Koden ovenfor brukes til å slette alle linjene innenfor den definerte prosedyren.

Følg koden nedenfor

 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 objekt for arbeidsbokmodul Sett VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Kontrollerer om prosedyren finnes i kodemodulen Hvis ikke VBCM er ingenting, så er ProcStartLine = 0' Funksjon som tilordner linjenr. av startlinjen for prosedyren ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Hvis ProcStartLine> 0 Deretter 'Funksjon tilordne nr. av linjer i prosedyren ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Slett alle linjene i prosedyren 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 'Henter verdi for modul- og prosedyrenavn fra tekstbokser ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, ProcedureName End Sub Sub 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post