我正在全年的工作日列表上工作。这些行将由不同的用户手动填充,目的是在整整一年中记录这些值。列特定于一年中的每一天,因此需要大量滚动才能找到特定范围。
我想要实现的是拥有两个可以填充两个日期的单元格,一个开始日期和结束日期,当输入这些日期时,所有其他列都将从视图中隐藏。
我发现了一种方法可以在一个单元格中的给定日期之前隐藏列,但是有些方法可以帮助我们在另一个单元格中的给定日期之后隐藏列。在这种情况下,单元格E35
到目前为止,该方法的VBA代码是:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160725
Dim xCell As Range
If Target.Address <> Range("E34").Address Then Exit Sub
Application.ScreenUpdating = False
For Each xCell In Range("H1:NG1")
xCell.EntireColumn.Hidden = (xCell.Value < Target.Value)
Next
Application.ScreenUpdating = True
End Sub
这里的参考图片: Example
提前谢谢// R
答案 0 :(得分:3)
跟进@dgorti回答,在以后的情况下,当您想监视多个范围的工作表时,您可以使用:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E34:E35")) Is Nothing Then
' perform your code hewe
Else
' you can put your Exit Sub here
End If
End Sub
答案 1 :(得分:2)
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160725
Dim xCell As Range
If Target.Address <> Range("E34").Address AND Target.Address <> Range("E35").Address Then Exit Sub
Application.ScreenUpdating = False
For Each xCell In Range("G1:NG1")
xCell.EntireColumn.Hidden = (xCell.Value < Range("E34").Value or xCell.Value > Range("E35").Value )
Next
Application.ScreenUpdating = True
End Sub