Excel宏,用于在特定列单元格中输入日期时自动隐藏行

Excel宏,用于在特定列单元格中输入日期时自动隐藏行,excel,vba,hide,rows,Excel,Vba,Hide,Rows,我是VBA新手,还在学习。我试图完成的事情似乎很容易,但我遇到了困难。我需要编写一个宏,在特定列的单元格中输入日期(任意日期)时自动隐藏行 例如,数据记录在A:F列中。当G2中输入“发货”日期时,第2行自动隐藏 任何帮助都将不胜感激 谢谢 McJ如果编辑列“G”中的单元格并将其更改为介于零和当前日期之间的日期(数字),则以下VBA代码将隐藏相关行: Option Explicit Private lastSelectedCell As Range Private Sub Worksheet_

我是VBA新手,还在学习。我试图完成的事情似乎很容易,但我遇到了困难。我需要编写一个宏,在特定列的单元格中输入日期(任意日期)时自动隐藏行

例如,数据记录在A:F列中。当G2中输入“发货”日期时,第2行自动隐藏

任何帮助都将不胜感激

谢谢


McJ

如果编辑列“G”中的单元格并将其更改为介于零和当前日期之间的日期(数字),则以下VBA代码将隐藏相关行:

Option Explicit

Private lastSelectedCell As Range

Private Sub Worksheet_Activate()
    Set lastSelectedCell = Range("A1")
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' If the most recently selected cell was in column 6 ('G')
    If (lastSelectedCell.Column = 6) Then
        ' If the previously selected cell was a date on or before today
        If ((lastSelectedCell.Value <= Date) And (lastSelectedCell.Value > 0)) Then
            ' Hide the entire row
            Rows(lastSelectedCell.Row).EntireRow.Hidden = True
        End If
    End If
    Set lastSelectedCell = Target
End Sub
选项显式
专用lastSelectedCell作为范围
专用子工作表_Activate()
设置lastSelectedCell=范围(“A1”)
端接头
专用子工作表\u选择更改(ByVal目标作为范围)
'如果最近选定的单元格位于第6列('G')
如果(lastSelectedCell.Column=6),则
'如果以前选择的单元格是今天或之前的日期
如果((lastSelectedCell.Value 0))则
'隐藏整行
行(lastSelectedCell.Row).EntireRow.Hidden=True
如果结束
如果结束
设置lastSelectedCell=Target
端接头

感谢您的快速响应。但是它不起作用。表示:“如果(lastSelectedCell.Column=6),则”=再次表示我不熟悉这一点,因此非常感谢您的帮助。@MCJ需要运行
工作表\u Activate()
方法来初始化
lastSelectedCell
变量。尝试保存并重新打开
.xlsm
文件,错误将消失。能否添加代码示例?