V tomto článku vytvoříme makro pro odstranění jiného makra z modulu.
Jako ukázkové makro používáme Module1, který obsahuje SampleProcedure, který chceme odstranit.
Vysvětlení kódu
Nastavit VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule
Výše uvedený kód se používá k vytvoření objektu definovaného modulu.
ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc)
Výše uvedený kód se používá k získání čísla počátečního řádku definované procedury.
ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)
Výše uvedený kód se používá k získání počtu řádků v definované proceduře.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Výše uvedený kód slouží k odstranění všech řádků v rámci definované procedury.
Pro kód prosím postupujte níže
Možnost Explicit Sub SubProcedureCode (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' Vytváření objektu aktivního sešitu Nastavit WB = ActiveWork objekt modulu sešitu Nastavit VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Kontrola, zda procedura existuje v codemodule If Not VBCM Is Nothing Then ProcStartLine = 0' Funkce přiřazující číslo řádku. startovní čáry pro proceduru ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Pokud ProcStartLine> 0 Pak 'Funkce přiř. řádků v proceduře ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Odstranit všechny řádky v proceduře VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure ()' Dim ModuleName, ProcedureName jako řetězec 'Získávání hodnoty pro název modulu a procedury z textových polí ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Volání DeleteProcedureCode makro DeleteProcedureCode ModuleName, ProcedName End Sub Sub
Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail