复制" x"过滤行数

时间:2016-07-28 18:38:22

标签: excel-vba excel-2010 vba excel

有没有办法只将您设置的贷款金额复制并粘贴到已经过滤的数据集上的变量中?

我有一个数据表,可以过滤一种类型的贷款," ASC"在这种情况下。在我进行自动过滤后,共有800个" ASC"贷款在整个过滤范围内蔓延。行" ASC"贷款不是连续的(它们可以在第1,2,5,9,110,500行等)。我知道我可以使用下面的代码来过滤" ASC"贷:

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

但我怎样才能复制前100" ASC"过滤后的视图标注贷款?我不确定如何选择合适的范围,因为如果我执行以下操作:

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

它不会起作用,因为我的前100个ASC贷款中的一些可能会在第100行的整个工作表范围内进一步下降。

通过遍历每个visibleRow并单独复制而不是作为一个组进行复制,是复制一定数量的已过滤行的唯一方法吗?或者你需要做一个COUNT的可见单元格并计数到100并以某种方式找到行引用?

非常感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:0)

由于过滤只是将行高设置为0,因为任何不符合条件的行都可以使用它来查找地点。问题将出在你应对的地方。根据目的地,有时隐藏的单元格最终会出现在剪贴板上,有时则不会。我看到两者都发生了。如果是另一张Excel表,你应该没问题。

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

使用此方法从您设置的任何起点找到第N个可见行。我将变量命名为标准,以便更清楚地表示它们代表什么。