2016-04-21 6 views
-1

Ich muss .xlsx-Dateien. Einer hat Daten "source.xlsx" und einer hat Makros "work.xlsm". Ich kann die Daten von "source.xlsx" in "work.xlsm" laden, indem ich die integrierte Ladefunktion von Excel benutze oder Application.GetOpenFilename verwende. Ich möchte jedoch nicht alle Daten in der source.xlsx. Ich möchte nur bestimmte Zeilen auswählen, deren Kriterien zur Laufzeit festgelegt werden. Betrachtet dies als SELECT aus einer Datenbank mit Parametern. Ich muss dies tun, um die Zeit und Verarbeitung der Daten, die von "work.xlsx" verarbeitet werden, zu begrenzen. Gibt es eine Möglichkeit, das zu tun?So wählen Sie bestimmte Zeilen zum Laden in eine Excel-Arbeitsmappe von einem anderen zur Laufzeit

Ich versuchte mit parametrisierten Abfrage von Excel -> [Daten] -> [Von anderen Quellen], aber wenn ich das tat, beschwerte es sich über das Finden einer Tabelle (gleich mit ODBC). Dies liegt daran, dass die Quelle keine Tabelle definiert hat, daher ist es sinnvoll. Aber ich bin davon ausgeschlossen, die Quelle zu berühren.

Also kurz gesagt, ich muss Daten vor dem Export in das Zielblatt filtern, ohne die Quelldatei zu berühren. Ich möchte das entweder interaktiv oder über ein VBA-Makro tun.

Hinweis: Ich verwende Excel 2003

Hilfe oder Zeiger wird geschätzt. Danke.

+0

3000 Punkte und Sie haben nur eine Sache versucht? – findwindow

+1

Wenn Sie Ihre Excel-Version (mindestens 2010) aktualisieren können, dann die kostenlose [Microsoft Add-In Power Query] (https://support.office.com/de-de/article/Introduction-to-Microsoft-Power- Query-for-Excel-6e92e2f4-2079-4e1f-bad5-89f6269cd605) könnte helfen –

+0

@ visu-l, das ist ein guter Vorschlag. Danke. – NoChance

Antwort

0

Ich verwendete ein Makro, um die Quelldatei von .xlsx in .csv-Format zu konvertieren und dann die CSV-formatierte Datei mit einer Schleife, die den gewünschten Filter während des Ladens enthielt geladen.

Dieser Ansatz ist vielleicht nicht der beste, dennoch wurde kein anderer Vorschlag angeboten und dieser funktioniert! Der andere Ansatz besteht darin, die Idee der Vorfilterung aufzugeben und die Ladezeitverzögerung zu opfern und das Filtern und Entfernen unerwünschter Zeilen in der Datei "work.xlsm" durchzuführen. Leistung und Speichergröße sind in diesem Fall wichtige Faktoren, wenn man annimmt, dass die Code-Komplexität nicht das Problem ist.

Verwandte Themen