2017-07-22 122 views
-1

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

E.g.数据记录在列A:F中。当“运送”日期输入到G2中时,第2行自动隐藏。

任何帮助将不胜感激。

谢谢。

MCJ

+0

灿你请添加一个代码示例? –

回答

0

下面的VBA代码将隐藏相关联的行,如果在列“G”的小区零和当前日期之间编辑和改变为日期(数目):

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 
+0

感谢您的快速响应。但它不起作用。说:“如果(lastSelectedCell.Column = 6)然后”= <对象变量或块变量未设置“我再次在这个新的,所以任何帮助非常感谢。 –

+0

@MCJ'Worksheet_Activate()'方法需要运行以初始化'lastSelectedCell'变量。尝试保存并重新打开'.xlsm'文件,错误应该消失。 – VirtualMichael

相关问题