首页 > 解决方案 > 单个工作表中的多个 Worksheet_Changes

问题描述

我需要将两个 worksheet_changes 放在一张纸上。在阅读中,我发现除非将它们结合起来,否则这是不可能的。我一直在尝试这样做,但遇到了问题。下面是我试图开始工作的代码:

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Activate

If Not Application.Intersect(Range("C10:AA10"), Range(Target.Address)) 

Is Nothing Then
        Select Case Target.Value

Case Is = "": Rows("11:55").EntireRow.Hidden = True

 Case Is = "1": Rows("14:55").EntireRow.Hidden = True
                            Rows("11:13").EntireRow.Hidden = False

Case Is = "2":  Rows("17:55").EntireRow.Hidden = True
                            Rows("11:16").EntireRow.Hidden = False

Case Is = "3": Rows("20:55").EntireRow.Hidden = True
                            Rows("11:19").EntireRow.Hidden = False

 Case Is = "4":  Rows("23:55").EntireRow.Hidden = True
                            Rows("11:22").EntireRow.Hidden = False

 Case Is = "5": Rows("26:55").EntireRow.Hidden = True
                            Rows("11:25").EntireRow.Hidden = False

 End Select

If Not Application.Intersect(Range("C63:AA63"), Range(Target.Address)) 

Is Nothing Then

 Select Case Target.Value

 Case Is = "Other": Rows("64").EntireRow.Hidden = False

Rows("64").EntireRow.Hidden = True

End If

End Sub

本质上,我需要根据行 C10:AA63 中的选择出现/消失行,然后我需要根据 C63:AA63 中的选择出现/消失一行

任何帮助表示赞赏

标签: excelvbaworksheet-function

解决方案


有很多错误,试试这个代码

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("C10:AA10"), Target) Is Nothing Then
    Select Case Target.Value
        Case "": Rows("11:55").Hidden = True
        Case 1
            Rows("14:55").Hidden = True
            Rows("11:13").Hidden = False
        Case 2
            Rows("17:55").Hidden = True
            Rows("11:16").Hidden = False
        Case 3
            Rows("20:55").Hidden = True
            Rows("11:19").Hidden = False
        Case 4
            Rows("23:55").Hidden = True
            Rows("11:22").Hidden = False
        Case 5
            Rows("26:55").Hidden = True
            Rows("11:25").Hidden = False
    End Select
End If
If Not Intersect(Range("C63:AA63"), Target) Is Nothing Then
    Select Case Target.Value
    Case "Other"
        Rows("64").Hidden = False
        Rows("64").Hidden = True
    End Select
End If

End Sub

推荐阅读