我有一个不断增长的电子表格,我希望在同一列中的特定单元格输入日期后隐藏行。我已经尝试了下面的2 vbas,无法按照我希望的方式让他们工作。输入日期的列为H或8,列为标题为"里程碑完成日期"。
代码#1:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 And Target.Value <> "" Then
Target.EntireRow.Hidden = True
End If
End Sub
代码#1的问题是用户可以按Enter键并且行被隐藏。如果单元格包含日期(mm / dd / yyyy),我只希望隐藏行。
代码#2
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 8 ('H')
If (lastSelectedCell.Column = 8) 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
使用Code#2,我不断收到运行时错误&#34; 91&#34;对象变量或未设置块变量。我无法解决这个问题。
非常感谢任何帮助。
答案 0 :(得分:2)
我喜欢你的Code#1,只有一点微小的变化:
IsDate()
我喜欢tab-to-tab-stop
,因为它可以说明1/22/2018是日期而43122不是。