Kopieren Sie gefilterte Daten aus einer geschlossenen Arbeitsmappe basierend auf dem benannten Bereich
Erster Ansatz hier.
Ich frage mich, ob Sie mir bei folgendem Problem helfen können: Ich habe diesen Code gefunden und muss ihn an meine Bedürfnisse anpassen, aber ich weiß nicht wie:
Es gibt eine Datei (Closed.xlsx), die täglich von einem Server mit variabler Größe jeden Tag (> 100000 Zeilen) exportiert wird. Ich muss bestimmte Daten (Spalten 1,3,8,24,27) aus dieser Datei anhand von Kriterien filtern und kopieren (benannter Bereich "TECH", dessen Informationen in Spalte 8 vorhanden sind ). TECH hat die Namen eines bestimmten Technikerteams (John, Richard, Charles, ...). Gefilterte Daten werden in Open.xlsm Sheet "Report" eingefügt (gleicher Ordner). Ich arbeite mit Excel 2013/2016
Mein Ziel ist: Öffnen Sie die Arbeitsmappe "Open.xlsm", "Bericht" und aktualisieren Sie automatisch die gefilterten Daten
Option Explicit 'you can extract data from a closed file by using an 'XLM macro. Credit for this technique goes to John 'Walkenback > http://j-walk.com/ss/excel/tips/tip82.htm Sub GetDataDemo() Dim FilePath$, Row&, Column&, Address$ 'change constants & FilePath below to suit '*************************************** Const FileName$ = "Closed.xlsx" Const SheetName$ = "DataList" Const NumRows& = 100000 'Need to configure range from A1 to last row non blank to get range exact size Const NumColumns& = 28 'Or setup only cols 1,3,8,24,27 FilePath = ActiveWorkbook.Path & "\" '*************************************** DoEvents Application.ScreenUpdating = False If Dir(FilePath & FileName) = Empty Then MsgBox "The file " & FileName & " was not found",, "File Doesn't Exist" Exit Sub End If For Row = 1 To NumRows For Column = 1 To NumColumns Address = Cells(Row, Column).Address 'How to setup named range Cells(Row, Column) = GetData(FilePath, FileName, SheetName, Address) Columns.AutoFit Next Column Next Row ActiveWindow.DisplayZeros = False End Sub Private Function GetData(Path, File, Sheet, Address) Dim Data$ Data = "'" & Path & "[" & File & "]" & Sheet & "'!" & _ Range(Address).Range("A1").Address(,, xlR1C1) GetData = ExecuteExcel4Macro(Data) End Function
Vielen Dank für Ihre Aufmerksamkeit. JT
0 Antworten auf die Frage
Verwandte Probleme
-
5
Wie verschiebe ich meinen PC in eine VM-Instanz?
-
3
Gibt es eine Größenbeschränkung für die USB2.0-Datenübertragung?
-
1
Wie kann ich MP3-Dateien an eine Handynummer senden ..?
-
1
Wie kann ich meine Datenübertragung messen?
-
4
Hochgeschwindigkeits-Datenaustausch zwischen zwei Computern
-
2
Warum gehen bei einigen PCs Daten über USB-seriell verloren?
-
5
Wie lang (maximale Länge) kann ein USB 2.0-Signal über Hubs übertragen werden?
-
2
Wie kann ich berechnen, wie viel Zeit benötigt wird, um 10 TB mit unterschiedlichen Geschwindigkeite...
-
1
Wie kann ich dem Infopath-Dropdown eine Liste hinzufügen?
-
1
Wie viel Datenübertragung ist auf einer HD "zu viel"?