Ich habe eine xlsm, die andere durchläuft alle .xslx-Dateien in einem Verzeichnis, läuft ein Sub, speichert sie. (Danke Tabias) In diesem Sub Ich versuche jetzt etwas hinzuzufügen, die die letzte Spalte aus einer dritten Datei hinzufügen würde. Mein erstes Problem hier ist, wie man die Quelldatei definiert. Wir müssen Daten aus der genauen Datei mit einem ähnlichen Namen aufnehmen. So MC.xslx ahs von MC12february.xlsx zu kopieren und KA.xlsx hat von KAwhateverdate.xlsx importierenExcel-VBA: Kopieren der letzten Spalte mit dynamischen Pfaden und Namen
Set wbA = Workbooks.Open("C:\files" & "\" & ActiveWorkbook.Name & "*.xlsx")
leider active.workbook.name die Erweiterung enthält, so OR euch kann eine Lösung sagen Sie mir, OR Ich muss die Dateien Datum + Name zuerst speichern und es in wbA = Workbooks.Open("C:\files" & "\*" & ActiveWorkbook.Name)
richtig ändern?
Das gleiche gilt für das Blatt. Diese werden je nach Datei MC, KA, KC, ... heißen. Als nächstes, da ich nur die letzte Spalte der Datei in die letzte Spalte der anderen Datei kopieren möchte, bin ich ziemlich verwirrt. I found this code und dachte, es sei am verständlichsten.
Sub import()
Dim Range_to_Copy As Range
Dim Range_Destination As Range
Dim Sheet_Data As Worksheet 'sheet from where we pull the data
Dim Sheet_Destination As Worksheet ' destination
Dim workbook_data As Workbook
Dim workbook_destination As Workbook
Set workbook_data = "N:\blah\deposit" & "\*" & ActiveWorkbook.Name
Set workbook_detination = ActiveWorkbook
Set Sheet_Data = ThisWorkbook.Sheets("Sheet1") 'help, how do i do this?
Set Sheet_Destination = ThisWorkbook.Sheets("Sheet1") ' and this?
Set Range_to_Copy = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
Set Range_Destination = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
Range_to_Copy.Copy Range_Destination 'this copies from range A to B (basically A.copy B), but i changed variable names to make it easier...
'you can simplify without variables like this:
'Sheets("Sheet1").Range("D1").Copy Sheets("Summary).Range("A1") <===== does the same as the above coding
Keine der einfacheren Lösungen schien auch nicht geeignet.
Wie Sie sehen, bin ich völlig bei der Definition der letzten Spalte und des Namens des Blattes fest. Dieser Code ist für mich unvollständig, um dies zu überprüfen. Kann mich jemand auf den richtigen Weg bringen? Danke.
Sorry, können Sie das Problem ein wenig mehr klären? Das Problem ist das Öffnen Ihrer Blätter? Wenn Sie .xlsx-Dateien in einem Verzeichnis haben, können Sie [durch ein Verzeichnis blättern] (http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba) oder sehen [diese Seite] (http://www.thespreadsheetguru.com/the-code-vault/2014/4/23/loop-through-all-excel-files-in-a-iven-folder), die etwas Hilfe bieten sollte . Wenn Sie den Namen der Arbeitsmappe auf eine Variable setzen, können Sie auch die Erweiterung mit 'WBname = Ersetzen (wb.Name," .xls "," ") entfernen. – BruceWayne
Es tut mir leid, dass ich dafür bekannt bin, sehr chaotisch zu sein. – Lara
Ich bin schon durch das Verzeichnis mit Dateien mit den Namen KA.xslx, KC.xslx, MC.xslx, WT.xslx .... durchgeschleift. Also in der Schleife ist eine Datei geöffnet (duh), etwas Wörter geändert, einige Blätter gemacht und alle Blätter werden auf leere Spalten überprüft. Ich möchte einen Schritt hinzufügen, bei dem ich die letzte Spalte aus einer anderen Datei in die Datei kopiere, die jetzt aktiv ist. Die andere Datei ist für jede Datei im Verzeichnis unterschiedlich. Also muss KA.xlsx die letzte Spalte einer Datei kopieren, die KA1564.xlsx heißt, und KC.xlsx muss ti von KC68787.xlsx – Lara