Kustutage protseduur moodulist, kasutades VBA -d Microsoft Excelis

Anonim

Selles artiklis loome makro, et kustutada moodulist veel üks makro.

Kasutame moodulit 1, mis sisaldab näidismakrona SampleProcedure, mille soovime kustutada.

Koodi selgitus

Määra VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule

Ülaltoodud koodi kasutatakse määratletud mooduli objekti loomiseks.

ProcStartLine = VBCM.ProcStartLine (protseduuri nimi, vbext_pk_Proc)

Ülaltoodud koodi kasutatakse määratletud protseduuri stardirea numbri saamiseks.

ProcLineCount = VBCM.ProcCountLines (protseduuri nimi, vbext_pk_Proc)

Ülaltoodud koodi kasutatakse määratud protseduuri ridade arvu saamiseks.

VBCM.DeleteLines ProcStartLine, ProcLineCount

Ülaltoodud koodi kasutatakse kõigi ridade kustutamiseks määratud protseduuri raames.

Palun järgige koodi allpool

 Valik Explicit Sub DeleteProcedureCode (ByVal DeleteFromModuleName As String, ByVal ProcedureName As String) 'Muutujate deklareerimine Dim VBCM CodeModule, ProcStartLine As Long, ProcLineCount As Long Dim WB kui töövihik Vea jätkamine "Aktiivse töövihiku komplekti loomine WB = töövihiku mooduli objekt Määra VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Kontroll, kas protseduur on koodmoodulis olemas Kui mitte VBCM pole midagi, siis ProcStartLine = 0' Funktsioon, mis määrab rea nr. protseduuri algusjoonele ProcStartLine = VBCM.ProcStartLine (MenetluseNimi, vbext_pk_Proc) Kui ProcStartLine> 0 Siis 'Funktsioon määrab nr. ridadest protseduuris ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Kustutage kõik protseduuri read VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure Dim ModuleName, MethodName as String 'Mooduli ja protseduuri nime väärtuse hankimine tekstikastidest ModuleName = Sheet1.TextBox1.Value ProcedurName = Sheet1.TextBox2.Value' Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, MethodName End Sub 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile