2016-12-10 5 views
0

Ich lese mehrere Q & A's, aber es ist schwierig für mich, alle langen Skripte mit der Verwendung von verschiedenen Objekten wirklich zu verstehen.VBA Paste Bereich mit dynamischer Auswahl

Ich versuche einen Bereich von einem Arbeitsblatt zu einem anderen zu wählen. Ich möchte die Reichweite dynamisch halten, da die Reichweite jedes Mal variieren kann. Dazu habe ich das folgende Skript verwendet:

Dim range As Long 

For range = ActiveCell To ActiveCell.End(xlDown) 
Sheets("Stock Report").range("A4" & range).Value = 
    Sheets("Unique File").range("Y8" & range).Value 

Allerdings tut es nichts.

Dieses Skript funktioniert, aber ich würde die letzte Zelle dynamisch halten mag:

Sheets("Stock Report").Range("A4:A9000").Value = 
    Sheets("Unique File").Range("Y8:Y90004").Value 

Ich habe dies für mehrere Spalten tun, die durch die Verwendung andere Dateien in einem anderen Arbeitsblatt berechnet werden und müssen sortieren sie schließlich ohne alle Berechnungen in einem anderen.

Irgendwelche Vorschläge?

Antwort

0

OK versuchen.

Sheets("Unique File").Range("Y8:Y" & Sheets("Unique File").Range("A4").End(xlDown).Row + 4).Copy 
Sheets("Stock Report").Range("A4").PasteSpecial Paste:=xlPasteValues 

Range („A4“). End (xlDown) .Row wird die letzte Zeile der Daten auf dem Blatt Stock Report und wird bis auf die gleiche Zeile auf dem Eindeutigen Datei Blatt zu kopieren. Ich habe 4 hinzugefügt, weil Ihr Bereich auf dem Blatt "Eindeutige Datei" mit 8 beginnt.

Ich glaube, dass Ihr Code nicht funktioniert hat, weil Sie versucht haben, den "Bereich" zu verwenden, den Sie auf dem Blatt "Berichte" im Feld "Eindeutige Werte" erstellt haben.

+0

Hallo Gordon. Die Sache ist, dass ich nicht die ganze Spalte auswählen möchte. Es sollte immer von Zellen ausgehen (4, xx). Und der Bereich, den ich auswählen möchte, hat Werte. Die Sache, die ich nicht will, ist, am Ende mehr Reihen zu haben als die Werte, die ich habe. –

+0

Das funktioniert! Danke –