Σε αυτό το άρθρο, θα δημιουργήσουμε μια μακροεντολή για να διαγράψουμε μια άλλη μακροεντολή από μια ενότητα.
Χρησιμοποιούμε το Module1, το οποίο περιέχει SampleProcedure ως δείγμα μακροεντολής, το οποίο θέλουμε να διαγράψουμε.
Επεξήγηση κώδικα
Ορίστε VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule
Ο παραπάνω κώδικας χρησιμοποιείται για τη δημιουργία ενός αντικειμένου της καθορισμένης μονάδας.
ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc)
Ο παραπάνω κώδικας χρησιμοποιείται για να λάβει τον αριθμό γραμμής εκκίνησης της καθορισμένης διαδικασίας.
ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)
Ο παραπάνω κώδικας χρησιμοποιείται για τον υπολογισμό του αριθμού των γραμμών στην καθορισμένη διαδικασία.
VBCM.DeleteLines ProcStartLine, ProcLineCount
Ο παραπάνω κώδικας χρησιμοποιείται για τη διαγραφή όλων των γραμμών εντός της καθορισμένης διαδικασίας.
Ακολουθήστε παρακάτω για τον κωδικό
Option Explicit Sub DeleteProcedureCode (ByVal DeleteFromModuleName As String, ByVal ProcedureName As String) 'Δήλωση μεταβλητών Dim VBCM As CodeModule, ProcStartLine As Long, ProcLineCount As Long Dim WB As Workbook On Error Resume Next' Creating αντικειμένου ενεργού βιβλίου εργασίας αντικείμενο λειτουργικής μονάδας βιβλίου Ορισμός VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 'Έλεγχος εάν υπάρχει η διαδικασία στο codemodule If Not VBCM Is Nothing then ProcStartLine = 0' Συνάρτηση εκχώρησης της γραμμής αριθ. της γραμμής εκκίνησης για τη διαδικασία ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc) Εάν ProcStartLine> 0 Τότε 'Συνάρτηση εκχωρήστε το αρ. γραμμών στη διαδικασία Dim ModuleName, ProcedureName As String 'Λήψη τιμής για το στοιχείο της λειτουργικής μονάδας και της διαδικασίας από τα πλαίσια κειμένου ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value' Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, ProcedureName End Sub
Αν σας άρεσε αυτό το blog, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email