2016-07-28 21 views
0

Gibt es eine Möglichkeit, nur eine Menge von Krediten zu kopieren und einzufügen, die Sie auf eine Variable in einem bereits gefilterten Datensatz setzen?Kopieren einer "x" Menge gefilterter Zeilen

Ich habe ein Datenblatt, das für eine Art von Darlehen, "ASC" in diesem Fall gefiltert werden wird. Nachdem ich den Autofilter gemacht habe, gibt es insgesamt 800 "ASC" -Kredite, die über den gefilterten Bereich verteilt sind. Die Zeilen, in denen sich "ASC" -Darlehen befinden, sind nicht fortlaufend (sie könnten sich in den Zeilen 1, 2, 5, 9, 110, 500 usw. befinden). Ich weiß, dass ich im folgenden Code verwenden kann, für „ASC“ Kredite zu filtern:

'Filter for ASC Loans 
COREraw.Range("Q1").AutoFilter Field:=17, Criteria1:="ASC" 

Aber wie kann ich kopieren nur den ersten 100 „ASC“ bezeichneten Darlehen aus der gefilterten Ansicht? Ich bin mir nicht sicher, wie die richtigen Bereich zu wählen, da, wenn ich folgendes tun:

COREraw.Range("A1:AG100").SpecialCells(xlCellTypeVisible).Copy 
stratSamp.Paste Destination:=Worksheets("Strat_Sample").Range("A1") 

Es wird nicht funktionieren, weil einige meiner ersten 100 Darlehen von ASC weiter der gesamten Blatt vorbei hinunter Bereich sein könnte, Zeile 100.

Ist die einzige Möglichkeit, über eine bestimmte Anzahl von gefilterten Zeilen zu kopieren, indem Sie jedes visibleRow durchlaufen und einzeln kopieren, anstatt als Gruppe zu kopieren? Oder müssten Sie einen ZAHL der sichtbaren Zellen machen und bis 100 zählen und irgendwie die Zeilenreferenz finden?

Jede Hilfe würde sehr geschätzt werden. Danke

Antwort

0

Da die Filterung nur die Zeilenhöhe auf 0 setzt für alles, was nicht den Kriterien entspricht, können Sie das verwenden, um Ihren Platz zu finden. Das Problem wird dort sein, wo du zurechtkommst. Je nach Zielort landen die versteckten Zellen manchmal in der Zwischenablage, manchmal nicht. Ich habe gesehen, dass beides passiert ist. Wenn es zu einer anderen Excel-Tabelle ist, sollten Sie in Ordnung sein.

Option Explicit 
Sub Visible_Only_Selection() 
Dim Starting, Ending, Selection_Size, LCount As Long 
Starting = ActiveCell.Row 

LCount = 0 
Selection_Size = InputBox("Size of sample?", "Row count") 
Do Until LCount = Selection_Size 
    ActiveCell.Offset(1, 0).Select 
    Do Until ActiveCell.Height <> 0 
    ActiveCell.Offset(1, 0).Select 
    Loop 
LCount = LCount + 1 
Loop 
Ending = ActiveCell.Row 

Range("A" & Starting & ":AG" & Ending).Copy 
Sheets("Strat_Sample").Select 
Range("A1").Select 

ActiveSheet.Paste 

End Sub 

Mit dieser Methode finden Sie die N-te sichtbare Reihe von dem Startpunkt, den Sie einrichten. Ich habe die Variablen aus dem Standard herausgenommen, um klarer zu sehen, was sie repräsentieren.