但我的日期数据顺序相反,从最新到最旧排序。
Dan Wagner提供的代码对我没有用,因为当我运行代码时它没有做任何事情。
我在这里有一个代码,如果我手动设置月份小于一个值,工作正常。 .Range("B2").Resize(Lastrow - 1).Formula = "=AND(MONTH(A2)<>4)"
如果A列中的日期月份不是当前月份,我希望代码删除行。所以我尝试使用.Range("B2").Resize(Lastrow - 1).Formula = "=AND(MONTH(A2)<>Month(Date))"
代码,但它只删除了我的标题。
所以我想知道是否有什么可以将月份(日期)功能更改为数字?或者,如果还有其他最佳方式吗? 请参阅下面的完整代码
Sub ProcessData2()
Dim rng As Range
Dim Lastrow As Long
Dim i As Long
With ActiveSheet
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Columns(2).Insert
.Range("B1").Value = "tmp"
.Range("B2").Resize(Lastrow - 1).Formula = "=AND(MONTH(A2)<>Month(Date))"
Set rng = .Range("A1").Resize(Lastrow, 2)
rng.AutoFilter Field:=2, Criteria1:="=TRUE"
On Error Resume Next
Set rng = .Range("B2").Resize(Lastrow - 1).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not rng Is Nothing Then rng.EntireRow.Delete
.Columns(2).Delete
End With
End Sub
答案 0 :(得分:0)
看起来不错,只需尝试将公式更改为:
.Range("B2").Resize(Lastrow - 1).Formula = "=MONTH(A2)<>MONTH(TODAY())"