我的代码如下所示。我第一次过滤,它工作正常。但是第二次,它没有。过滤的列包含年。VBA筛选年份
For i = 1 To LastRow
If wSheet.Range("A1").Offset(i, 0) <> wSheet.Range("A1").Offset(i + 1, 0) Then
WellName = wSheet.Range("A1").Offset(i, 0)
Set rng = wSheet.Range("A1", Cells(LastRow, LastColumn))
rng.AutoFilter Field:=1, Criteria1:=Name
L_top = wSheet.Range("A2:A" & LastRow).SpecialCells(xlCellTypeVisible).Row
L_bot = wSheet.Range("A2:A" & LastRow).SpecialCells(xlCellTypeVisible).Count
LastRowFilter = wSheet.Range("A1").End(xlDown).Row
LastColumnFilter = wSheet.UsedRange.Columns.Count
For j = 1 To LastRowFilter
If Year(wSheet.Range("B1").Offset(j, 0)) <> Year(wSheet.Range("B1").Offset(j + 1, 0)) Then
ReportYear = Year(wSheet.Range("B1").Offset(j, 0))
Set rng2 = wSheet.Range("B1", Cells(LastRowFilter, LastColumnFilter))
rng2.AutoFilter Field:=2, Criteria2:=ReportYear
L_top = wSheet.Range("B2:B" & LastRowFilter).SpecialCells(xlCellTypeVisible).Row
L_bot = wSheet.Range("B2:B" & LastRowFilter).SpecialCells(xlCellTypeVisible).Count
End If
Next
End If
Next
你得到的错误是什么? – RocketDonkey
实际上不是一个错误。但它似乎隐藏了任何东西。第一次过滤是成功的,但是当我做第二次时它会隐藏任何东西。 thx –
有没有办法做到这一点?我已经尝试录制宏,但它仍然不起作用 –