V tem članku bomo ustvarili makro za brisanje drugega makra iz modula.
Za vzorčni makro uporabljamo Module1, ki vsebuje SampleProcedure, ki ga želimo izbrisati.
Razlaga kode
Nastavite VBCM = WB.VBProject.VBCcomponents (DeleteFromModuleName) .CodeModule
Zgornja koda se uporablja za ustvarjanje predmeta definiranega modula.
ProcStartLine = VBCM.ProcStartLine (Ime postopka, vbext_pk_Proc)
Zgornja koda se uporablja za pridobitev številke začetne vrstice definiranega postopka.
ProcLineCount = VBCM.ProcCountLines (Ime postopka, vbext_pk_Proc)
Zgornja koda se uporablja za štetje števila vrstic v definiranem postopku.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Zgornja koda se uporablja za brisanje vseh vrstic v definiranem postopku.
Za kodo sledite spodaj
Možnost Explicit Sub DeleteProcedureCode (ByVal DeleteFromModuleName As String, ByVal ProcedureName As String) »Razglasitev spremenljivk Zatemni VBCM kot CodeModule, ProcStartLine kot dolg, ProcLineCount kot dolg Dim WB Kot delovni zvezek Napaka Nadaljuj Naslednji 'Ustvarjanje predmeta aktivnega delovnega zvezka Ustvarjanje aktivnega delovnega zvezka Ustvarjanje aktivnega delovnega zvezka Ustvari aktivni delovni zvezek objekt modula delovnega zvezka Nastavite VBCM = WB.VBProject.VBCkomponente (DeleteFromModuleName) .CodeModule 'Preverjanje, ali postopek obstaja v kodnem modulu Če ni VBCM Ni nič, potem ProcStartLine = 0' Funkcija, ki dodeljuje vrstico št. začetne vrstice za postopek ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Če je ProcStartLine> 0 Potem 'Funkcija dodeli št. vrstic v postopku ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Izbrišite vse vrstice v postopku VBCM.DeleteLines ProcStartLine, ProcLineCount Konec Če je nastavljen VBCM = Nič konca Če je Napaka Pojdi na 0 Prekini Sub Sub CallingProcedura' Dim ModuleName, ProcedureName As String 'Pridobivanje vrednosti za ime modula in postopka iz besedilnih oken ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Klicanje mapa DeleteProcedureCode DeleteProcedureCode ModuleName, ProcedureName End Sub
Če vam je bil ta blog všeč, ga delite s prijatelji na Facebooku. Prav tako nam lahko sledite na Twitterju in Facebooku.
Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo svoje delo in ga izboljšamo za vas. Pišite nam na spletnem mestu e -pošte