Esiste un metodo per aggiungere la macro al file di Excel a livello di programmazione?
Ho troppi file Excel voglio aggiungere una macro a loro. L'aggiunta manuale (a mano) sembra impossibile. Ho bisogno di creare uno strumento per farlo.Come aggiungere la macro excel 2010 a livello di programmazione
5
A
risposta
5
Sì, è possibile farlo a livello di codice, è possibile accedere all'ambiente di sviluppo integrato VB tramite codice. Il seguente sito Web è eccellente per conoscere il VBIDE, li ho usati per mettere insieme questo codice. Se si esegue WorkbookModuleImport
, verranno visualizzate due finestre di dialogo aperte, la prima che richiede le cartelle di lavoro per importare i moduli in, la seconda per selezionare i moduli per l'importazione.
Sub WorkbookModuleImport()
Dim ii As Integer, vFileNames As Variant, vModules As Variant
'We'll use the Application.GetOpenFilename to get a list of all the excel workbooks we want to import into
vFileNames = Application.GetOpenFilename(",*.xls;*.xlsx;*.xlsm", , "Select Workbooks to Import Modules To", , True)
'If the result is not an array it means the cancel button has been pressed
If Not IsArray(vFileNames) Then Exit Sub
'Use the same method to get all the modules/classes/forms to input
vModules = Application.GetOpenFilename(",*.cls, *.bas, *.frm", , "Select Modules/Forms/Class Modules to Import", , True)
If Not IsArray(vModules) Then Exit Sub
'Now loop through all the workbooks to import the modules
For ii = LBound(vFileNames) To UBound(vFileNames)
Call ImportModules(VBA.CStr(vFileNames(ii)), vModules)
Next ii
End Sub
Public Sub ImportModules(sWorkbookName As String, vModules As Variant)
Dim cmpComponents As VBIDE.VBComponents, ii As Integer
Dim wkbTarget As Excel.Workbook
'We need to open the workbook in order to be able to import the code module
Set wkbTarget = Workbooks.Open(sWorkbookName)
'If the project is protected with a password we can't import so just set tell us in the immediate window
If wkbTarget.VBProject.Protection = 1 Then
'Give a message
Debug.Print wkbTarget.Name & " has a protected project, cannot import module"
GoTo Cancelline
End If
'This is where we set the reference to the components of the Visual Basic project
Set cmpComponents = wkbTarget.VBProject.VBComponents
'Loop through all the modules to import
For ii = LBound(vModules) To UBound(vModules)
cmpComponents.Import vModules(ii)
Next ii
Cancelline:
'If it's in Excel 2007+ format but doesn't already have macros, we'll have to save it as a macro workbook
If wkbTarget.FileFormat = xlOpenXMLWorkbook Then
wkbTarget.SaveAs wkbTarget.Name, xlOpenXMLWorkbookMacroEnabled
wkbTarget.Close SaveChanges:=False
Else
'Otherwise, just save the workbook and close it
wkbTarget.Close SaveChanges:=True
End If
'I don't trust excel, so set the workbook object to nothing
Set wkbTarget = Nothing
End Sub
Queste pagine web sono grandi riferimenti: http://www.cpearson.com/excel/vbe.aspx e http://www.rondebruin.nl/vbaimportexport.htm. Ho usato Ron come punto di partenza.
Problemi correlati
- 1. cancella i fogli di lavoro excel a livello di programmazione
- 2. Aggiungere UIScrollView in UIView a livello di programmazione
- 3. Come aggiungere le viste alle viste a livello di programmazione
- 4. Come aggiungere un'immagine da visualizzare a livello di programmazione?
- 5. Come aggiungere nodi in DevExpress TreeList a livello di programmazione?
- 6. Aggiungere risorse a Jetty a livello di programmazione
- 7. Java a Excel 2010
- 8. Metodologie di programmazione Excel
- 9. Come impostare windowDrawsSystemBarBackgrounds a livello di programmazione?
- 10. Aggiungere testo all'immagine in Android a livello di programmazione
- 11. aggiungere i vincoli al livello di programmazione
- 12. , verificare a livello di programmazione
- 13. Aggiungere ruolo all'utente in Liferay a livello di programmazione
- 14. come inviare sms a livello di programmazione?
- 15. Come disabilitare SparkUI a livello di programmazione?
- 16. Ionico come tornare a livello di programmazione
- 17. Come si aggiunge UIButton a UIToolBar a livello di programmazione?
- 18. Modifica lingua app a livello di programmazione
- 19. Come nascondere UITabBarController a livello di programmazione?
- 20. Come configurare ELMAH a livello di programmazione?
- 21. Come attivare "Installato" a livello di programmazione?
- 22. Come programmare un'attività a livello di programmazione
- 23. Come aprire selezionare a livello di programmazione
- 24. Come utilizzare AcroTextExtractor.exe a livello di programmazione?
- 25. Javascript - aggiungi seleziona a livello di programmazione
- 26. Come aumentare la dimensione dell'heap java a livello di programmazione
- 27. Android - Come toccare la voce ListView a livello di programmazione
- 28. Come bloccare a livello di programmazione la schermata in Android?
- 29. come avviare la programmazione a livello di chip
È anche possibile seguire le risposte di questa domanda [utilizzare una macro in diversi file excel] (http://stackoverflow.com/q/9480936/4519059). –