ich bin mal wieder über etwas recht eigenartiges gestolpert, wovon ich dachte, daß es kein Problem wäre...
Per VBA wird für eine Messungsauswertung u.a. ein xls-Meßreport mit drei Sheets in gleichnamige Blätter der Auswertungsdatei importiert.
Im Bestand war das mit .Copy und .PasteSpecial gemacht.
Im Zuge der Überarbeitung unserer Dateien habe ich das jetzt dahingehend geändert, daß der Quellbereich in eine Variant-Variable (cRng = current Range) übertragen wird (habe ich an x Stellen schon so oder so ähnlich gemacht) eingelesen und diese dann in den Zielbereich geschrieben wird. Worüber ich jetzt gestolpert bin ist, daß es einen Laufzeitfehler '1004' gibt, wenn ich nicht vorher das Zielarbeitsblatt aktiviere. Besonders witzig: die Zielblätter sind ausgeblendet - da ist aktivieren doch gar nicht möglich, oder? Dennoch hat es so dann funktioniert. Wenn ich jedoch nur einen Wert in eine Zelle schreibe, dann muß ich das nicht tun. Dabei ist es doch das gleich in grün, oder?
Der Code:
With Workbooks(BBook).Worksheets("Reference")
cRng = .Range("A1:BC" & .Cells(Rows.Count, 2).End(xlUp).Row)
End With
Workbooks(ABook).Worksheets("Reference").Activate
Workbooks(ABook).Worksheets("Reference").Range(Cells(1, 1), Cells(UBound(cRng, 1), UBound(cRng, 2))) = cRng
With Workbooks(BBook).Worksheets("Detail")
cRng = .Range("A1:BR" & Cells(Rows.Count, 2).End(xlUp).Row)
End With
Workbooks(ABook).Worksheets("Detail").Activate
Workbooks(ABook).Worksheets("Detail").Range(Cells(1, 1), Cells(UBound(cRng, 1), UBound(cRng, 2))) = cRng
With Workbooks(BBook).Worksheets("Overall")
cRng = .Range("A1:S" & Cells(Rows.Count, 1).End(xlUp).Row)
End With
Workbooks(ABook).Worksheets("Overall").Activate
Workbooks(ABook).Worksheets("Overall").Range(Cells(1, 1), Cells(UBound(cRng, 1), UBound(cRng, 2))) = cRng
Ich kann mir da keinen Reim drauf machen.Kann mich da jemand aufklären?`
Danke
Ben