我有一个工作表,其中 Range W9 有一个公式。哪些计算值是从1到10。
下面的 VBA 代码正在运行,如果我手动键入值(1 到 10) 范围 W9.
否则无法工作。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim allColumns As Range
Set allColumns = Rows("10:19")
allColumns.Hidden = False
If Not Intersect(Target, Range("W9")) Is Nothing Then
If Target.Value = 1 Then
Rows("10:19").Hidden = True
ElseIf Target.Value = 2 Then
Rows("11:19").Hidden = True
ElseIf Target.Value = 3 Then
Rows("12:19").Hidden = True
ElseIf Target.Value = 4 Then
Rows("13:19").Hidden = True
ElseIf Target.Value = 5 Then
Rows("14:19").Hidden = True
ElseIf Target.Value = 6 Then
Rows("15:19").Hidden = True
ElseIf Target.Value = 7 Then
Rows("16:19").Hidden = True
ElseIf Target.Value = 8 Then
Rows("17:19").Hidden = True
ElseIf Target.Value = 9 Then
Rows("18:19").Hidden = True
End If
End If
End Sub
请帮忙
.
请尝试下一种方法,将下一个代码复制到相应的工作表代码模块中:
Option Explicit
Private W9PrevVal As Long
Private Sub Worksheet_Activate()
W9PrevVal = Range("W9").value
End Sub
Private Sub Worksheet_Calculate()
Dim allColumns As Range
If W9PrevVal = 0 Then W9PrevVal = Range("W9").value 'first time the code is run, if sheet has not been activated
'it creates previous value reference
If W9PrevVal <> Range("W9").value Then
W9PrevVal = Range("W9").value
Else
Exit Sub 'first time or if W9 value has not been changed
End If
Set allColumns = rows("10:19")
allColumns.Hidden = False
rows(Range("W9").value + 9 & ":19").Hidden = True
End Sub
请评论您现有的代码事件,或修改其第一行(例如,
Worksheet___Change(...
)。