我已经运行了一段时间了(我使用它根据单元格中的日期来隐藏/取消隐藏行),但是突然之间它今天停止了工作;我是VBA的新手,所以我尝试查找它并找到问题,但无济于事...我确保所有引用的单元格都采用日期格式,但仍然收到Type Mismatch错误,并且当错误弹出时,实际上并没有给我进行调试的选项。 (Office Standard Excel 2010)
任何提示将不胜感激!
Sub HideRowsDate()
Dim cell As Range
For Each cell In Range("B6:B66")
If IsDate(cell.Value) Then
If DateValue(Format(cell.Value, "dd/mm/yyyy;@")) > DateValue(Format(Range("AA1"), "dd/mm/yyyy;@")) Then
'cell = cell.Value
cell.EntireRow.Hidden = True
End If
End If
If IsDate(cell.Value) Then
If DateValue(Format(cell.Value, "dd/mm/yyyy;@")) <= DateValue(Format(Range("AA1"), "dd/mm/yyyy;@")) Then
'cell = cell.Value
cell.EntireRow.Hidden = False
End If
End If
Next
End Sub
答案 0 :(得分:0)
未经测试:
Sub HideRowsDate()
Dim cell As Range, dt
If IsDate(Range("AA1").Value) Then '<< check for date in AA1
dt = Range("AA1").Value
For Each cell In Range("B6:B66").Cells
If IsDate(cell.Value) Then
cell.EntireRow.Hidden = (cell.Value > dt) 'will be either True or False...
End If
Next
Else
MsgBox "AA1 is not a date!"
End If
End Sub