2017-07-26 2 views
0

Ich muss einzelne Zeile (Zeile 9) Daten (von 5 Zeilen (Zeile 6-10) von Daten in jeder Datei) von mehreren Excel Dateien. Alle diese Dateien befinden sich in einem einzelnen Ordner und die Konsolidierungsdatei befindet sich eine Ebene höher in der Dateistruktur. Der unten angegebene Code kopiert 4 Zeilen (Zeile 6-9). Bitte helfen:Ich möchte Daten aus mehreren Excel-Arbeitsmappen in einem Ordner in einzelne Excel-Tabelle zusammenführen

-Code verwendet wurde, ist unten angegeben:

Sub Auto_Open() 
    'MsgBox "Welcome to ANALYSIS TABS" 
    'End Sub 

    'Sub simpleXlsMerger() 
    Dim bookList As Workbook 
    Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object 

    MsgBox "Welcome to Merging Platform..." 

    Application.ScreenUpdating = True 
    Set mergeObj = CreateObject("Scripting.FileSystemObject") 

    'change folder path of excel files here 
    Set dirObj = mergeObj.Getfolder("C:\Users\00508069\Desktop\New folder\data") 
    Set filesObj = dirObj.Files 
    For Each everyObj In filesObj 
    Set bookList = Workbooks.Open(everyObj) 

    'change "A2" with cell reference of start point for every files here 
    'for example "B3:IV" to merge all files start from columns B and rows 3 
    'If you're files using more than IV column, change it to the latest column 
    'Also change "A" column on "A65536" to the same column as start point 

    Range("A9:IV" & Range("A10").End(xlUp).Row).Copy 

    ThisWorkbook.Worksheets(1).Activate 

    'Do not change the following column. It's not the same column as above 
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial 


    Application.CutCopyMode = False 
    bookList.Close 
    Next 
End Sub 

Antwort

1

Das Problem in dieser Linie ist

Range("A9:IV" & Range("A10").End(xlUp).Row).Copy 

strenge in diesem Teil

Range("A10").End(xlUp).Row 

, die sagt: „Von Zelle A10 gehe zu der Zelle, in der der Datenblock endet, und nimm die Reihennummer dieser Zelle ". In Ihrem Fall bedeutet es, 6.

verwenden statt und Sie werden

Range("A9:IV9").Copy 
+0

Danke für den Tipp Kumpel. kleines Problem. Die erste Zelle der 9. Zeile, die kopiert werden soll, ist eine Referenz auf eine Zelle in der 6. Zeile. Anstatt den Wert für die erste Zelle der 9. Zeile zu kopieren, gibt es einen # REF-Fehler im kopierten Blatt an. Kannst du auch einen Weg dafür vorschlagen? – Demo

+0

Am Ende der Zeile 'Bereich (" A65536 "). Ende (xlUp) .Offset (1, 0) .PasteSpecial' add' xlPasteValues'. –

Verwandte Themen