使用 VBA 自动筛选多个列,值来自不同的 sheet
Using VBA to autofilter Multiple columns, with values from different sheet
我想使用 VBA 按 2 列过滤转储-sheet,标准来自同一工作簿中不同 sheet 的值。
使用的代码是:
Sub FilterOnCellValue()
With Sheets("Dump")
.Range("A1:Z10000").AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value, Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value
End With
End Sub
出于某种原因,此代码仅过滤一列,而它应该根据 2 个不同的值过滤编号为 9 和 23 的列。
由于我想从中吸取教训,解释一下我在VBA这篇文章中的思维错误。
Excel 版本是 2013,如果这有什么不同的话。
尝试将语法分成两行:
Sub FilterOnCellValue()
With Sheets("Dump").Range("A1:Z10000")
.AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value
.AutoFilter Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value
End With
End Sub
使用高级过滤器对多列使用“AND”和“OR”条件。
例如,如果您需要过滤“columnName1”> 10 或“columnName2”< 10 AND“columnName3”=“是”
我会创建另一个作品sheet,其中将包含过滤条件
在过滤器中 sheet 在一行中输入所有列名。
示例:如果第 1 行有 headers,则第 2 行应包含“AND”条件的值,第 3 行应包含“OR”条件的值。
第 2 行的“columname1”值应为“>10”,第 3 行的“columname2”值应为“<10”,第 2 行的“columname3”值应为“是” “
在您的宏中使用类似下面代码的高级过滤器,根据需要更改过滤器 sheet 名称和范围。
'Select Sheet 和需要过滤的单元格
范围(单元格(2, 1), ActiveCell.SpecialCells(xlLastCell)).Select
含Select离子
.AdvancedFilter 操作:=xlFilterInPlace,CriteriaRange:= _
Sheets("filter").Range("A1:D3"), Unique:=False
结束于
我想使用 VBA 按 2 列过滤转储-sheet,标准来自同一工作簿中不同 sheet 的值。
使用的代码是:
Sub FilterOnCellValue()
With Sheets("Dump")
.Range("A1:Z10000").AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value, Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value
End With
End Sub
出于某种原因,此代码仅过滤一列,而它应该根据 2 个不同的值过滤编号为 9 和 23 的列。 由于我想从中吸取教训,解释一下我在VBA这篇文章中的思维错误。 Excel 版本是 2013,如果这有什么不同的话。
尝试将语法分成两行:
Sub FilterOnCellValue()
With Sheets("Dump").Range("A1:Z10000")
.AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value
.AutoFilter Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value
End With
End Sub
使用高级过滤器对多列使用“AND”和“OR”条件。
例如,如果您需要过滤“columnName1”> 10 或“columnName2”< 10 AND“columnName3”=“是”
我会创建另一个作品sheet,其中将包含过滤条件
在过滤器中 sheet 在一行中输入所有列名。
示例:如果第 1 行有 headers,则第 2 行应包含“AND”条件的值,第 3 行应包含“OR”条件的值。
第 2 行的“columname1”值应为“>10”,第 3 行的“columname2”值应为“<10”,第 2 行的“columname3”值应为“是” “
在您的宏中使用类似下面代码的高级过滤器,根据需要更改过滤器 sheet 名称和范围。
'Select Sheet 和需要过滤的单元格 范围(单元格(2, 1), ActiveCell.SpecialCells(xlLastCell)).Select
含Select离子 .AdvancedFilter 操作:=xlFilterInPlace,CriteriaRange:= _ Sheets("filter").Range("A1:D3"), Unique:=False
结束于