编译错误:下一个没有 FOR 按月过滤每个 ws



我正在尝试使用 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",这让我感到困惑,因为确实有一个 next 和一个 for。

你错过了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

通常这意味着另一个嵌套代码(选择大小写,if,do while,with...(尚未完成,但您已经循环\停止了前一个。

在您的情况下,如果

最新更新