我有一个包含数据的工作表 . 只要特定列中的某些内容发生更改,我就希望将此工作表中一列的值复制到另一个工作表,但只能复制符合某些条件的行 . 所以我已经自动过滤了一个范围 . 这有效 . 它只返回与过滤器匹配的行 . 但是从这个过滤范围,我只需要一列 . 不知怎的,我不能让这个工作 .
所以我的问题是,我怎样才能从过滤范围中复制特定的列?
Code(snipped)我到目前为止:
Me.AutoFilterMode = False
With Me.Range("C4:D103")
.AutoFilter Field:=2, Criteria1:="=Marge Only", Operator:=xlOr, Criteria2:="=Contracting"
.SpecialCells(xlCellTypeVisible).Copy Destination:=ThisWorkbook.Worksheets("Result").Range("B5:B104")
End With
ThisWorkbook.SortResult
On Error Resume Next
Me.AutoFilterMode = False
Me.ShowAllData
On Error GoTo 0
.SpecialCells(xlCellTypeVisible).Copy部分将太多数据复制到目标工作表 . 我需要这样的东西:
.Range("A:A").SpecialCells(xlCellTypeVisible).Copy
使用.Range(“A:A”),我的想法是只复制已过滤范围中的A列 . 但这不起作用 .
那么你的建议如何实现呢?
2 回答
您可以稍微修改代码以仅复制所需的列 . 此代码假定列A(但您可以调整),并假设第4行是 Headers 数据(您也可以调整 .
这是你在说什么?它检查 Headers 列“I”,然后它找到过滤器“A”列中的第一个和最后一个单元格,并复制两者之间的值并将其粘贴到“O”列中