Šiame straipsnyje mes sukursime makrokomandą, kad ištrintume kitą makrokomandą iš modulio.
Mes naudojame „Module1“, kuriame kaip pavyzdinė makrokomanda yra „SampleProcedure“, kurią norime ištrinti.
Kodo paaiškinimas
Nustatykite VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule
Aukščiau pateiktas kodas naudojamas apibrėžto modulio objektui sukurti.
ProcStartLine = VBCM.ProcStartLine (Procedūros pavadinimas, vbext_pk_Proc)
Aukščiau pateiktas kodas naudojamas norint gauti nustatytos procedūros pradžios eilutės numerį.
ProcLineCount = VBCM.ProcCountLines (Procedūros pavadinimas, vbext_pk_Proc)
Aukščiau pateiktas kodas naudojamas norint nustatyti eilučių skaičių pagal nustatytą procedūrą.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Aukščiau pateiktas kodas naudojamas ištrinti visas eilutes pagal nustatytą procedūrą.
Sekite toliau pateiktą kodą
Parinktis „Explicit Sub DeleteProcedureCode“ („ByVal DeleteFromModuleName As String“, „ByVal ProcessName As String“) „Deklaruojantys kintamieji Dim VBCM kaip CodeModule,„ ProcStartLine As Long “,„ ProcLineCount As Long Dim WB As Workbook On Error “Tęsti Toliau„ Aktyvaus darbaknygės rinkinio kūrimas WB = Darbaknygės modulio objektas Nustatykite VBCM = WB.VBProject.VBComponents (DeleteFromModuleName). procedūros pradžios eilutės ProcStartLine = VBCM.ProcStartLine (Procedūros pavadinimas, vbext_pk_Proc) Jei ProcStartLine> 0 Tada 'Funkcija priskiria Nr. procedūrų eilutės ProcLineCount = VBCM.ProcCountLines (Procedūros_pavadinimas, vbext_pk_Proc) 'Ištrinkite visas eilutes procedūroje VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure Dim ModuleName, ProcedūraPavadinimas kaip eilutė 'Modulio ir procedūros pavadinimo reikšmės gavimas iš teksto laukelių ModuleName = Sheet1.TextBox1.Value ProcedūraName = Sheet1.TextBox2.Value' Skambinimas DeleteProcedureCode makrokomanda DeleteProcedureCode ModuleName, Procedūros pavadinimas Pavadinimas
Jei jums patiko šis tinklaraštis, pasidalykite juo su draugais „Facebook“. Be to, mus galite sekti „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime pagerinti savo darbą ir padaryti jį geresnį. Rašykite mums el