Ein Bereich kann nicht mehrere Arbeitsblätter umfassen.
Dies kann funktionieren, je nachdem, was Sie letztendlich tun müssen:
Set newRng = Worksheets(6).Range(range1.Address, range1.Address)
Aber, da diese Bereiche die gleiche Adresse in Ihrem Beispiel haben, denke ich, was Sie wollen, ist nicht ein Range
Objekt kombiniert sie, aber einige andere Datenstruktur, wie ein Array, eine Sammlung oder ein Wörterbuch.
HINWEIS Ihre Bereiche sind nicht gültig für den Anfang, Range("A2:A")
ist nicht gültig, also müssen Sie das beheben. Siehe here für zuverlässige Wege, um die "letzte" Zelle in einem Bereich zu finden. Ich habe es so modifiziert, dass es die gesamte Spalte A (außer A1) enthält, aber Sie werden das wahrscheinlich genau einstellen wollen.
newRange
haben einen anderen Datentyp, der für diese ohne Anheben eines Fehlanpassungsfehler zu arbeiten, zum Beispiel einer Collection
:
Sub Combine()
Dim coll as New Collection
Dim range1 As Range
Dim range2 As Range
Dim ID As Range
coll.Add Worksheets(3).Range("A2:A" & Rows.Count)
coll.Add Worksheets(4).Range("A2:A" & Rows.Count)
Set newRng = coll
End Sub
oder als ein Array von Bereich:
Sub combine()
Dim newRange(1) As Range
Set r1 = Worksheets(3).Range("A2:A" & Rows.Count)
Set r2 = Worksheets(4).Range("A2:A" & Rows.Count)
Set newRange(0) = r1
Set newRange(1) = r2
End Sub
Verwendung Im obigen Arraybeispiel können Sie die Werte dann einem anderen Speicherort zuweisen und bei Bedarf ändern:
Die Range-Methode, die zwei andere Bereiche akzeptiert (Range r1, Range r2), erwartet, dass sich diese beiden Bereiche auf demselben Blatt befinden wie das Arbeitsblatt, auf dem sie aufgerufen wurde. Sie haben Bereich 1 von Blatt 3 und Bereich 2 von Blatt 4 definiert, was fehlschlägt und auf einem völlig anderen Blatt aufgerufen wurde. 6. Was haben Sie von dem Code erwartet, damit ich Ihnen helfen kann, das zu erreichen, was Sie erwartet haben? – Mikegrann
@Mikegrann Ich möchte beide Bereiche aus separaten Blättern zu einer einzigen Variable zuweisen, ich denke, die erste Antwort kann funktionieren, ich versuche es jetzt. – H5470