U ovom ćemo članku stvoriti makronaredbu za brisanje druge makronaredbe iz modula.
Koristimo Module1 koji kao uzorci makronaredbe sadrži SampleProcedure koji želimo izbrisati.
Objašnjenje koda
Postavi VBCM = WB.VBProject.VBCkomponente (DeleteFromModuleName) .CodeModule
Gornji kôd koristi se za stvaranje objekta definiranog modula.
ProcStartLine = VBCM.ProcStartLine (Naziv procedure, vbext_pk_Proc)
Gornji kôd koristi se za dobivanje broja početnog retka definirane procedure.
ProcLineCount = VBCM.ProcCountLines (Naziv procedure, vbext_pk_Proc)
Gornji kôd se koristi za dobivanje broja redova u definiranom postupku.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Gornji kôd koristi se za brisanje svih redaka unutar definirane procedure.
Molimo slijedite dolje za kôd
Opcija Eksplicitno Sub DeleteProcedureCode (ByVal DeleteFromModuleName As String, ByVal ProcedureName As String) 'Deklariranje varijabli Zatamni VBCM kao CodeModule, ProcStartLine kao dugo, ProcLineCount kao dugo Dim WB Kao radna knjiga Pogreška Nastavi Sljedeći' Stvaranje objekta aktivna radna knjiga Stvaranje objekta Aktivna radna knjiga Stvaranje objekta Aktivna radna knjiga Stvaranje objekta Aktivni radni list objekt modula radne knjige Postavite VBCM = WB.VBProject.VBCkomponente (DeleteFromModuleName) .CodeModule 'Provjerava postoji li postupak u kodnom modulu Ako nije VBCM je ništa Tada ProcStartLine = 0' Funkcija dodjeljuje redak br. početnog retka za postupak ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Ako je ProcStartLine> 0 Tada 'Funkcija dodjeljuje br. redaka u postupku ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Izbrišite sve retke u postupku VBCM.DeleteLines ProcStartLine, ProcLineCount Kraj Ako je postavljeno VBCM = Ništa kraj Ako je pogreška Idi na 0 Prekini pomoćnu pomoćnu opciju CallingProceduru' Dim ModuleName, ProcedureName As String 'Dobivanje vrijednosti za naziv modula i procedure iz tekstualnih okvira ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Pozivanje DeleteProcedureCode makro DeleteProcedureCode ModuleName, ProcedureName End Sub
Ako vam se dopao ovaj blog, podijelite ga sa svojim prijateljima na Facebooku. Također, možete nas pratiti na Twitteru i Facebooku.
Voljeli bismo vas čuti, javite nam kako možemo poboljšati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte