Eine andere Lösung ist Ihr Roll-up-Tabelle Zugriff die anderen Tabellen von Dateinamen zu haben, und die Daten selbst greifen.
Dazu müssen alle Tabellen gleichzeitig geöffnet sein, damit die Links aktualisiert werden können. Dies ist jedoch wahrscheinlich immer noch schneller als das Öffnen und Kopieren bzw. Einfügen eines einzelnen Dokuments, selbst mit einem Makro . Jede Tabelle muss einen eindeutigen Dateinamen haben.
Wenn die Namen der Tabellen erst bekannt sind, wenn Sie sie erhalten oder sie sich regelmäßig ändern, erstellen Sie in Ihrer Rollup-Tabelle eine Spalte, in der der Dateiname der Tabellen gespeichert wird. Erstellen Sie dann die gewünschte Adresse mithilfe der Zeichenfolgenbearbeitung und erhalte die Daten mit INDIRECT().
=INDIRECT("'[C:\path\workbook.xls]MyWorksheet'!$A$2")
Spülen und wiederholen Sie die oben für jede Zelle jeder Tabelle, die Sie erhalten möchten:
Beispiel eine Zelle von Daten aus einer bestimmten Datei zu greifen.
Sie sollten schlau sein, wie Sie die Zeichenfolge an INDIRECT() übergeben können. Erstellen Sie es als eine Formel, so dass Sie buchstäblich die gleiche Formel für jede Zelle verwenden können, die Sie abrufen müssen.
Beispiel:
= INDIRECT("'[" & $A2 & "]MyWorksheet'!$" & ADDRESS(3, COL()))
Die Formel oben an der Tabelle, deren Dateinamen gehen ist in $ A2 (man beachte das Fehlen von $ vor „2“ so können Sie die gleiche Formel auf andere Zeilen für andere Dateien einfügen), und den Wert der Zelle auf dem MyWorksheet-Blatt in Zeile drei und der aktuellen-Spalte erhalten (also, wenn dies in B2 auf Ihrem Roll-up ist, erhält es B3 von der anderen Datei).
Passen Sie die ADDRESS-Funktion an, um Offsets zur benötigten Zeile und Spalte hinzuzufügen.
Der Vorteil der obigen Lösung besteht darin, dass die gleiche Formel kopiert und in die Zeilen und Spalten eingefügt werden kann, die Sie ausfüllen müssen, und Excel passt $ A2 und COL() nach Bedarf an. Sehr pflegeleicht.
Bearbeiten einmal hatte ich eine ähnliche Situation, und ich konnte nicht alle Tabellen auf einmal laden (mehr als 200). Ich glaube, ich habe am Ende die VBA geschrieben, also tat es nicht tatsächlich öffnen und lesen Sie die Excel-Dateien. Stattdessen ließ ich die Dateinamen durchlaufen, öffne jeweils eine ODBC-Verbindung und benutze ADO, um die benötigten Werte aus einem vorgegebenen benannten Bereich zu lesen (der als "Tabelle" in ODBC erscheint - die Arbeitsblätter erscheinen auch als "Tabellen") "Aber es gibt Regeln über erlaubte Namen." Dies war viel schneller als das Öffnen und Schließen von Excel-Dateien und hatte den zusätzlichen Vorteil, dass Excel nicht abstürzte.
Qusetions: 1) Was hast du bisher? 2) Wie kann ich wissen, welche Dateien geöffnet werden sollen?und 3) Was ist das Problem, auf das Sie stoßen? – RBarryYoung