2016-04-05 4 views
1

Ich habe den folgenden Code verwendet, um Daten aus verschiedenen Excel-Arbeitsblättern in einer ausgewählten Datei zu kopieren und in eine separate Arbeitsmappe für konsolidierte Daten einzufügen.Usedrange Resize VBA

Es funktioniert gut, aber ich möchte den Text aus den Arbeitsblättern kopieren und einfügen, ohne die erste Zeile (oder Header) zu enthalten.

Ich denke, ich muss die Auswahl des verwendeten Bereichs ändern.

Alle Gedanken würden geschätzt werden.

Sub Data() 

Dim wb1 As Workbook 
Dim wb2 As Workbook 
Dim Sheet As Worksheet 
Dim PasteStart As Range 

Set wb1 = ActiveWorkbook 
Set PasteStart = [Sheet1!A2] 

Sheets("Sheet1").Select 
Cells.Select 
Selection.ClearContents 

FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose a Report", _ 
FileFilter:="(.xls),") 

If FileToOpen = False Then 
MsgBox "No File Specified.", vbExclamation, "ERROR" 
Exit Sub 

Else 

Set wb2 = Workbooks.Open(Filename:=FileToOpen) 

For Each Sheet In wb2.Sheets 
    With Sheet.UsedRange 
     .Copy PasteStart 
     Set PasteStart = PasteStart.Offset(.Rows.Count) 
    End With 
Next Sheet 

End If 

wb2.Close 

End Sub 
+0

'Sheet.UsedRange.offset (1)' –

Antwort

1
For Each Sheet In wb2.Sheets 
    With Sheet.UsedRange 
     .Offset(1, 0).Resize(.Rows.Count-1, .Columns.Count).Copy PasteStart 
     Set PasteStart = PasteStart.Offset(.Rows.Count-1) 
    End With 
Next Sheet 
+0

Bitte näher ausführen, wie dieser Code beantwortet die Frage (diese Antwort war in der Low Quality Beiträge Überprüfung Warteschlange). – JAL

+0

Die Antwort führt nur ein neues Konzept über den geposteten Code ein: Ich glaube nicht, dass dies die Ausarbeitung verdient. –