Poista menettely moduulista käyttämällä VBA: ta Microsoft Excelissä

Anonim

Tässä artikkelissa luomme makron toisen makron poistamiseksi moduulista.

Käytämme moduulia 1, joka sisältää SampleProcedure -mallinäytteen, jonka haluamme poistaa.

Koodin selitys

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

Yllä olevaa koodia käytetään määritetyn moduulin objektin luomiseen.

ProcStartLine = VBCM.ProcStartLine (Menettelyn nimi, vbext_pk_Proc)

Yllä olevaa koodia käytetään määritetyn menettelyn aloitusrivin numeron saamiseen.

ProcLineCount = VBCM.ProcCountLines (Toimenpiteen_nimi, vbext_pk_Proc)

Yllä olevaa koodia käytetään laskemaan rivien määrä määritetyssä menettelyssä.

VBCM.DeleteLines ProcStartLine, ProcLineCount

Yllä olevaa koodia käytetään poistamaan kaikki rivit määritetyn menettelyn sisällä.

Seuraa koodia alla

 Vaihtoehto Explicit Sub DeleteProcedureCode (ByVal DeleteFromModuleName As String, ByVal ProcedúraName As String) 'Ilmoittavat muuttujat Dim VBCM As CodeModule, ProcStartLine Long, ProcLineCount As Long Dim WB Työkirjana Virhe Jatka Seuraava' Aktiivisen työkirjasarjan luominen WB = työkirjamoduulin objekti Aseta VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Tarkasta, onko menettely olemassa koodimoduulissa Jos ei VBCM ei ole mitään sitten ProcStartLine = 0' Toiminto, joka antaa rivin nro. Proseduurin aloituslinjasta ProcStartLine = VBCM.ProcStartLine (Menettelyn_nimi, vbext_pk_Proc) Jos ProcStartLine> 0 Sitten 'Funktio antaa nro. rivistä menettelyssä ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc) 'Poista kaikki rivit menettelyssä VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Subing CallingProcedure Dim ModuleName, ProcedName As String 'Moduulin ja menettelyn nimen arvon saaminen tekstiruuduista 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse