Gibt es eine Methode, Makro programmgesteuert Excel-Datei hinzuzufügen?
Ich habe zu viele Excel-Dateien Ich möchte ihnen ein Makro hinzufügen. Das manuelle Hinzufügen (von Hand) scheint unmöglich. Ich muss ein Werkzeug dafür erstellen.Wie Sie Excel 2010 Makro programmgesteuert hinzufügen
5
A
Antwort
5
Ja, Sie können dies programmatisch tun, können Sie die VB Integrated Development Environment über Code zugreifen. Die folgende Website ist hervorragend geeignet, um etwas über die VBIDE zu erfahren. Ich habe sie benutzt, um diesen Code zusammenzustellen. Wenn Sie WorkbookModuleImport
ausführen, werden zwei geöffnete Dialogfelder geöffnet, in denen zuerst nach Arbeitsmappen gefragt wird, in die Module importiert werden sollen. In der zweiten werden die Module zum Importieren ausgewählt.
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
Diese Webseiten sind große Referenzen: http://www.cpearson.com/excel/vbe.aspx und http://www.rondebruin.nl/vbaimportexport.htm. Ich habe Ron als Ausgangspunkt benutzt.
Verwandte Themen
- 1. Eingabefeld zum URL-Checker-Makro in Excel 2010 hinzufügen
- 2. VBA Excel 2010 - Wie ein Makro einer Befehlsschaltfläche zuweisen, der mit einem gemacht Makro
- 3. Aktuelles Datum zu Excel hinzufügen Makro
- 4. Wie 2010/2013/2016 STRG + S-Taste in Excel catch hinzufügen In
- 5. Excel Email Makro Größenbeschränkungen
- 6. Excel Makro Scatterplot
- 7. Lesen Sie mehr Makro-fähige Excel-Dateien
- 8. Stand Alone Excel Makro
- 9. Autorun-Makro in Powerpoint 2010
- 10. Wie programmgesteuert hinzufügen/entfernen?
- 11. Excel VBA Makro
- 12. Excel-2007 Rekord Makro
- 13. komplexe Excel-Makro
- 14. Excel Farbbereich Bedingungen Makro
- 15. Wie Sie ein Attribut programmgesteuert hinzufügen
- 16. VBA-Makro Excel
- 17. Makro aus Form programmgesteuert entfernen
- 18. Excel mit Makro
- 19. Excel-Makro-Tabelle transponieren
- 20. Excel Makro - sehr langsam
- 21. Suchen Sie nach besser definierten Bereich in Excel 2010?
- 22. Eine integrierte Excel-Funktion mit Makro überschreiben oder hinzufügen
- 23. Öffnen Sie Visio-Zeichnung mit einem Makro in Access 2010
- 24. Excel 2010 Userforms vba
- 25. Wie Zeilenspalten in Excel durchlaufen VBA Makro
- 26. Excel 2010: VLOOKUP Funktion
- 27. Forced Ranking Makro Excel VBA
- 28. Excel Makro - True/False VBA
- 29. definierte Makro-Positionen in Excel
- 30. Equivalent Excel-Makro zu C#
Sie können auch Antworten dieser Frage folgen [verwenden Sie ein Makro in verschiedenen Excel-Dateien] (http://stackoverflow.com/q/9480936/4519059). –