我正在尝试使用for循环来过滤当前月份中此工作簿中的每个ws。这就是它现在所处的位置
Sub curmonth()
Dim ws As Worksheet
On Error Resume Next
For Each ws In ThisWorkbook.Worksheets
If ws.Visible Then
' filter each worksheet by current month
Range("A:G").AutoFilter Field:=5, Operator:=xlAnd, _
Criteria1:=">" & Application.EoMonth(Now, -1), _
Criteria2:="<=" & Application.EoMonth(Now, 0)
Next ws
On Error GoTo 0
End Sub
它一直给我错误“编译错误:下一个没有FOR”,这对我来说很困惑,因为确实存在下一个和一个for。
答案 0 :(得分:1)
您错过了End If
声明。另外,将Range("A:G")...
更改为ws.Range("A:G")...
。通过这些更改,您的For
循环应为:
For Each ws In ThisWorkbook.Worksheets
If ws.Visible Then
' filter each worksheet by current month
ws.Range("A:G").AutoFilter Field:=5, Operator:=xlAnd, _
Criteria1:=">" & Application.EoMonth(Now, -1), _
Criteria2:="<=" & Application.EoMonth(Now, 0)
End If
Next ws
答案 1 :(得分:0)
通常它意味着另一个嵌套代码(select case,if,do while,with ...)没有完成,但你已经循环\停止了先例。
在你的情况下,如果
,你就错过了一个结局