我搜索并搜索了互联网和所有论坛,我一直在拼凑代码,但仍然无法弄清楚这一点。我试过For
循环和For Each
循环,但仍然无法正确。在我的工作表中,我的所有日期都在D 列中。我想按月隐藏行。我希望能够点击一个宏按钮,只显示一月、二月等的日期。
这是我目前拥有的:
Sub January()
'
'
'
Dim cell As Range
For Each cell In Range("Date")
If cell.Value = "" Then
cell.EntireRow.Hidden = False
End If
If cell.Value < "1/1/2018" Or cell.Value > "1/31/2018" Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
当我运行它时,它只会隐藏任何不是空单元格的东西。我在将单元格定义为 aRange
和 a之间循环,Variant
两种方式都是一样的。
和:
它现在正在工作,并且得到了每个人的帮助。对此,我真的非常感激!这是我结束的..
Sub January()
'
'
'
Dim cell As Range
For Each cell In Range("Date")
If cell.Value = "" Then
cell.EntireRow.Hidden = False
ElseIf cell.Value < CDate("1/1") Or cell.Value > CDate("1/31") Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
我从代码中删除了年份,这样我就不必为未来几年更改任何编码。
您当前的设置会将所有日期限定为 < 或 > 各自的日期比较。
如果您试图在此代码中隐藏一月的行,则需要使用AND
而不是OR
并确保您使用>=
&<=
来包含第一个和最后一个日期。
If cell >= "1/1/2018" AND cell <= "1/31/2018" Then
如果您试图隐藏不是一月的行,那么您的<
和 会>
被转置:
If cell < "1/1/2018" OR cell > "1/31/2018" Then
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句