Αντιγραφή μονάδας VBA - Συμβουλές για το Excel

Πίνακας περιεχομένων

Η Μισέλ γράφει:

Έχουμε αναπτύξει μια εφαρμογή Excel που δημιουργεί ένα μοναδικό βιβλίο εργασίας Excel για διανομή σε καθένα από 54 μεσίτες. Πρέπει να συμπεριλάβω αρκετές μακροεντολές VBA σε καθένα από τα 54 βιβλία εργασίας του Excel που διανέμονται στους μεσίτες. Πώς μπορώ να αντιγράψω μια ενότητα VBA από το αρχικό βιβλίο εργασίας του Excel σε κάθε νέο βιβλίο εργασίας του Excel;

Αυτή είναι μια μεγάλη ερώτηση, Μισέλ. Είναι εύκολο να χρησιμοποιήσετε τα φύλλα (). Αντιγράψτε την εντολή για να αντιγράψετε ένα φύλλο εργασίας σε ένα νέο βιβλίο εργασίας, αλλά δεν είναι τόσο εύκολο να αντιγράψετε μια ενότητα στο νέο βιβλίο εργασίας. Η λύση περιλαμβάνει την εξαγωγή της λειτουργικής μονάδας μία φορά και στη συνέχεια την εισαγωγή της σε καθένα από τα 54 βιβλία εργασίας μεσίτη καθώς αυτά έχουν ολοκληρωθεί. Εδώ είναι ένα τμήμα του κώδικα σας με τη λύση.

' Delete any old stray copies of the module1 On Error Resume Next Kill ("C:MrXL1.bas") On Error GoTo 0 ' Export Module 1 ActiveWorkbook.VBProject.VBComponents("module1").Export ("c:MrXL1.bas") For x = 1 to 54 ThisBroker = Sheets("BrokerList").range("A" & x).value '… customization of plan omited for brevity Sheets(Array("Menu", "Plan")).Copy NBName = ActiveWorkbook.Name ' new book name ' Import Module 1 to this new book Application.VBE.ActiveVBProject.VBComponents.Import ("c:MrXL1.bas") ActiveWorkbook.SaveAs Filename:=ThisBroker ActiveWorkbook.Close Next x Kill ("C:MrXl1.bas")

Τα VBE.ActiveProject.VBComponents.Export και VBE.ActiveProject.VBComponents… Οι εντολές εισαγωγής φροντίζουν να αντιγραφούν οι μακροεντολές στα νέα βιβλία.

Στο Excel 2002 και νεότερο, πρέπει να επιτρέψετε ρητά μια μακροεντολή να προσθέσει κώδικα σε ένα βιβλίο εργασίας. Μεταβείτε στα Εργαλεία, Μακροεντολή, Ασφάλεια. Κάντε κλικ στη 2η καρτέλα: Trusted Publishers. Κάτω αριστερά, επιλέξτε Trust Access to Visual Basic Project. Στο Excel 2007, μεταβείτε στο εικονίδιο Office, Επιλογές Excel, Κέντρο αξιοπιστίας, Ρυθμίσεις κέντρου αξιοπιστίας, Ρυθμίσεις μακροεντολών και επιλέξτε Πρόσβαση εμπιστοσύνης στο μοντέλο αντικειμένου έργου VBA.

Προσοχή

Οι εντολές εξαγωγής και εισαγωγής λειτουργικών μονάδων, καθώς και οι εντολές για την πληκτρολόγηση νέων μακροεντολών σε ένα υπάρχον βιβλίο εργασίας είναι συλλογικά γνωστές ως Visual Basic Extensibility ή VBE. Εάν το βιβλίο εργασίας σας χρησιμοποιεί εντολές VBE, υπάρχει μεγάλη πιθανότητα το βιβλίο εργασίας να επισημανθεί από σαρωτές ιών. Αυτό είναι ένα ψευδώς θετικό. Το όνομα του φερόμενου ιού έχει σχεδόν πάντα "ευρετικό" όνομα. Αυτό σημαίνει ότι ο σαρωτής βλέπει κλήσεις DLL που φαίνονται ύποπτες, αλλά δεν ταιριάζουν απαραίτητα με γνωστούς ιούς. Συνήθως, μπορείτε να γράψετε στον κατασκευαστή του λογισμικού προστασίας από ιούς και να υποβάλετε αίτηση για να προσθέσετε λευκή λίστα στο βιβλίο εργασίας σας, αφού εξηγήσετε τι κάνετε και γιατί είναι καλό να κάνετε.

ενδιαφέροντα άρθρα...