【发布时间】:2020-04-23 22:13:19
【问题描述】:
经过几个小时的尝试,我急需帮助。我是 VBA 新手,这是我的问题。 我有一个包含 20 列(A 到 T)的表,但行数未定义(它们会随着时间的推移而添加),我的目标是根据 2 个标准过滤数据:第一个标准在第 6 列(F2) - 城市名称和第二个条件在第 11 列 (K2) - 月中,但没有格式化为时间,只是文本,之后我只想将第 20 列 (T2) 的可见结果复制到工作簿的第二张表中。我的问题是,当我运行代码时,所有列都被复制(A 到 T)。 这是我使用的代码:
Sub copy_filtered_data()
Dim count_col, count_row As Integer
Dim orig, output As Worksheet
Worksheets("Intrari").Activate
Set orig = ThisWorkbook.Sheets("Intrari")
Set output = ThisWorkbook.Sheets("Raport")
count_col = WorksheetFunction.CountA(Range("A1", Range("A1").End(xlToRight)))
count_row = WorksheetFunction.CountA(Range("A1", Range("A1").End(xlDown)))
ActiveSheet.Range("A1").AutoFilter Field:=6, Criteria1:=Cells(2, 28).Value
ActiveSheet.Range("A1").AutoFilter Field:=11, Criteria1:=Cells(2, 29).Value
orig.Range("T1") = Cells(count_row, 20).SpecialCells(xlCellTypeVisible).Copy
output.Cells(1, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
提前谢谢你:)
【问题讨论】:
-
Cells(count_row, 20).SpecialCells(xlCellTypeVisible).Copy- 如果您在一个单元格上调用 SpecialCells,它将返回所有内容...在列上调用它。虽然我不确定orig.Range("T1") =在那里做什么。
标签: excel vba copy autofilter