根据 Excel VBA 中的公式值显示隐藏行

问题描述 投票:0回答:1

我有一个工作表,其中 Range W9 有一个公式。哪些计算值是从110

下面的 VBA 代码正在运行,如果我手动键入值(110) 范围 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

请帮忙

.

vba
1个回答
0
投票

请尝试下一种方法,将下一个代码复制到相应的工作表代码模块中:

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(...
)。

© www.soinside.com 2019 - 2024. All rights reserved.