[英]Select and copy a specific number of filtered rows using VBA in excel
我在一個巨大的列表上使用了自動篩選,並希望復制前200條可見的行。 我的代碼是靜態的,因為它僅選擇到第201行。我想擁有一個動態代碼,其中在使用過濾器時(不包括標題),我選擇了第一個可見的200行。 這是我的代碼今天的樣子:
Sheets("Sheet1").Select
Range("A2:A201").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
這將僅復制A列中的前200個可見項目,但標題除外:
Sub AutoFilterCopyVisible()
Dim r1 As Range, r2 As Range
Set r1 = Sheets("Sheet1").AutoFilter.Range.Offset(1, 0).Resize(200, 1)
Set r2 = Sheets("Sheet2").Range("A1")
r1.Copy r2
End Sub
這是我解決的方法!
前200條可見行從Sheet1 A11(2列)復制到Sheet2 A2。 以及從Sheet1 K11(3列)到Sheet2 G2的200行。 如果要添加更多復制/粘貼,只需添加以下部分:
Set r = Range("K11", Range("K" & Rows.Count).End(xlUp)).SpecialCells(12)
Range(r(1), rWC).Resize(, 3).SpecialCells(12).Copy Sheet2.[G2]
這是總宏:
Sub
Sheets("Sheet1").Select
Dim i As Long
Dim r As Range
Dim rWC As Range
Set r = Range("A11", Range("A" & Rows.Count).End(xlUp)).SpecialCells(12)
For Each rWC In r
i = i + 1
If i = 200 Or i = r.Count Then Exit For
Next rWC
Range(r(1), rWC).Resize(, 2).SpecialCells(12).Copy Sheet2.[A2]
Set r = Range("K11", Range("K" & Rows.Count).End(xlUp)).SpecialCells(12)
Range(r(1), rWC).Resize(, 3).SpecialCells(12).Copy Sheet2.[G2]
Sheets("Sheet2").Select
Range("A1").Select
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.