2016-07-07 9 views
0

Dieser Unterpunkt kopiert ein Blatt von einem anderen Blatt. Die Länge ist variabel, daher habe ich LastRow verwendet. Ich möchte den Sub aktualisieren, um nicht das ganze Blatt zu kopieren, sondern aus dem Header in wb2 in die letzte Datenzeile zu kopieren. Die Kopfzeile wird jedes Mal in einer anderen Zeile angezeigt. Der Spaltenkopf in Spalte "A" ist "Client". Der Header in der letzten Spalte ist "Last"Welche Aktualisierung kann mit dem Sub vorgenommen werden, um mit dem Kopieren in der Kopfzeile zu beginnen?

Sub CopySheetsl_()

Set wb1 = Workbooks("macro..xlsm") 
Set wb2 = Workbooks.Open("L:\ Report.xlsx") 

LastRow = wb2.Sheets("Page1_1").range("A:Y").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 

wb1.Sheets("Carrier").range("E1", "BU1" & LastRow) = wb2.Sheets("Page1_1").range("A1", "BQ1" & LastRow).value ' CopySht 'Range("A11", "I11" & LastRow).Value 

wb1.Close 
wb2.Close 

End Sub

Antwort

1

Sie benötigen Range.CurrentRegion

verwenden

ich diese bearbeiten werde, wie es schwierig ist zu lesen der Code im Kommentar:

Sub test() 
Dim strAddress As String 

strAddress = Sheets(2).Range("A1").CurrentRegion.Address 

Sheets(1).Range(strAddress) = Sheets(2).Range(strAddress).Value 
End Sub 
+0

Ich habe versucht, aktuelle Region ohne Glück zu verwenden. Wo würde ich es richtig im Sub hinzufügen? Wenn ich es zu den Sub-Läufen ohne Fehler hinzufüge, aber keine Daten verschoben werden. –

+0

Ich habe nicht genau Ihr Szenario kopiert, aber die folgenden Arbeiten in Bezug auf das Kopieren von aktuellen Region: 'Sub test() Dim strAddress As String strAddress = Sheets (2) .Range ("A1") Current.. Adresse Blätter (1) .Range (strAddress) = Blätter (2) .Range (strAddress) .Wert End Sub' –

+0

Immer noch kein Glück. Ich erhalte keine Ausnahme, der SUb läuft, aber keine Daten werden kopiert. Was vermisse ich? Danke für Ihre Hilfe. –