如果A1更改,我想隐藏一些列,但我担心函数Worksheet_Change不起作用。
我有以下代码但如果我改变A1没有任何反应。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "A1" Then
Call hideColumns()
'
'
End If
End Sub
答案 0 :(得分:3)
更改为
If Target.Address = "$A$1" Then
或者可能使用(我最喜欢的):
If Not Intersect(Target, Range("A1")) Is Nothing Then
答案 1 :(得分:0)
隐藏列列(“B”)。EntireColumn.Hidden = False / True 或 隐藏行行(“2:2”)。EntireRow.Hidden = False / True
实施例
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = 0
If Not Intersect(Target, ([A1])) Is Nothing Then
If Target.Value = "" Then
Columns("D").EntireColumn.Hidden = False
Else
Columns("D").EntireColumn.Hidden = True
End If
End If
Application.EnableEvents = 1
End Sub
Range.Hidden Property (Excel) 返回或设置Variant值,指示行或列是否隐藏,将属性设置为True以隐藏行或列。指定的范围必须跨越整个列或行。
Application.EnableEvents Property (Excel) EnableEvents Excel中的应用程序属性VBA用于为指定对象启用事件。它的布尔值为True或False。