Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1832to1836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ziel-Sheet aktivieren vor einfg v.Range?

Ziel-Sheet aktivieren vor einfg v.Range?
16.06.2021 21:27:20
Ben
Hallo,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ziel-Sheet aktivieren vor einfg v.Range?
16.06.2021 21:42:17
GerdL
Moin Ben,
wenn du überall vor Cells so oder mittels With - End With - Block referenzierst, kannst du auf die Blattaktivierung verzichten.

Workbooks(ABook).Worksheets("Reference").Range(Workbooks(ABook).Worksheets("Reference").Cells(1, 1),  Workbooks(ABook).Worksheets("Reference").Cells(UBound(cRng, 1), UBound(cRng, 2))) = cRng
Gruß Gerd
AW: Ziel-Sheet aktivieren vor einfg v.Range?
16.06.2021 21:48:55
Ben
Danke!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige