目前,我正在尝试创建一个If Statement,它只在我的列表满足特定条件时才能运行。但是,尽管我的AutoFilter条件在Criteria1中不包括4,但宏现在仍在运行。
有人知道如何纠正这个问题吗?
Private Sub FilterAndPaste()
Sheets(1).Select
If ActiveSheet.Range("$A$3:$M$807").AutoFilter(Field:=2, Criteria1:="4") Then
' Insert the VLOOKUP formula into the given range
ActiveSheet.Range("M3").Offset(1, 0).Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-9],'[TestFile.xlsm]Test'!C1:C13,12,0)"
ActiveSheet.Range("M3").Offset(1, -1).Select
Selection.End(xlDown).Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
ActiveSheet.Range("A3").Offset(1, 0).Select
ActiveSheet.Range(Selection, Selection.End(xlToRight).End(xlToRight).End(xlToRight).End(xlDown)).Select
Selection.Copy
Sheets("Example").Select
ActiveSheet.Range("A4").Select
ActiveSheet.Paste
Rows("4:100").RowHeight = 12
Else
End
End If
End Sub发布于 2015-09-15 17:33:42
我看到两个问题,我会试着相应地回答它们。
Q1。现在,即使我的AutoFilter标准不包括Criteria1中的4,宏也会运行。有人知道如何纠正这个问题吗?
那是因为你说的那一刻
If ActiveSheet.Range("$A$3:$M$807").AutoFilter(Field:=2, Criteria1:="4") Then
Excel将设置一个自动过滤器,您的条件将为真。
Q2。我目前正在尝试做一个If语句,只有当我的列表符合某个标准时,它才会运行。
若要检查标准,请使用以下命令
With Sheets(1)
If .AutoFilterMode = True And .FilterMode = True Then
Debug.Print .Range("$A$3:$M$807").Parent.AutoFilter.Filters(2).Criteria1
End If
End With就像这样
With Sheets(1)
If .AutoFilterMode = True And .FilterMode = True Then
If .Range("$A$3:$M$807").Parent.AutoFilter.Filters(2).Criteria1 = "=4" Then
'
'~~> Rest of the code
'
End If
End If
End Withhttps://stackoverflow.com/questions/32592101
复制相似问题