![如何仅显示符合特定条件的数据行?](https://linux22.com/image/1483454/%E5%A6%82%E4%BD%95%E4%BB%85%E6%98%BE%E7%A4%BA%E7%AC%A6%E5%90%88%E7%89%B9%E5%AE%9A%E6%9D%A1%E4%BB%B6%E7%9A%84%E6%95%B0%E6%8D%AE%E8%A1%8C%EF%BC%9F.png)
如何在单独的工作表中仅显示基于 Excel 中满足特定条件的一列数据行?原始数据表中至少有 15 列和 240 行,如果该行中的一个单元格满足条件,我需要显示整行数据。
答案1
我不是 VB 爱好者,我不明白 DeltaHotel 的答案,所以我会在目标表上使用 IF 语句强行执行。一旦我让一个单元格工作,我就会将其复制到行和列中的每个单元格。
您可以参考原始表上的单元格并认真使用相对/绝对格式来获得正确结果。
如果你理解了 VB,它会更加优雅。
答案2
您可以使用数据过滤器选项(筛选从数据使用功能区 (ribbon) 来限制源工作表的范围,然后将整个工作表复制到目标工作表。如果要实现自动化,可以将其包装在一个小的 VBA 模块中,该模块可以动态创建(或清除)目标工作表。
类似下面的代码:
' clear the target sheet Sheets("Target Sheet").Select Cells.Select Selection.ClearContents Range("A1").Select ' go to source sheet Sheets("Source Sheet").Select ' filter as needed ActiveSheet.Range("$A$1:$O$500").AutoFilter Field:=4, Criteria1:="=100", _ Operator:=xlOr, Criteria2:="=200" ' copy filtered rows to target Cells.Select Selection.Copy Sheets("Target Sheet").Select ActiveSheet.Paste Range("A1").Select Sheets("Source Sheet").Select Application.CutCopyMode = False Range("A1").Select ActiveSheet.Range("$A$1:$O$500").AutoFilter Field:=4
将该代码放入模块中,然后您可以从开发人员功能区(宏)运行该代码,或者如果需要,可以将其分配给功能区或快速访问工具栏上的按钮。