在VBA中为Excel组合两个小脚本

我是一个VBA新手,有两个独立工作的小脚本,但是我无法让他们同时工作(因为我不知道该怎么做!)

脚本1:

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("AE49")) Is Nothing Then Exit Sub Select Case Target.Value Case 1 Range("A50:A52").EntireRow.Hidden = False Range("A53:A55").EntireRow.Hidden = True Case 2 Range("A50:A53").EntireRow.Hidden = False Range("A54:A55").EntireRow.Hidden = True Case 3 Range("A50:A54").EntireRow.Hidden = False Range("A55").EntireRow.Hidden = True Case 4 Range("A50:A55").EntireRow.Hidden = False End Select End Sub 

脚本2:

 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("AE25")) Is Nothing Then Exit Sub Select Case Target.Value Case 1 Range("A26:A28").EntireRow.Hidden = False Range("A29:A35").EntireRow.Hidden = True Case 2 Range("A26:A29").EntireRow.Hidden = False Range("A30:A35").EntireRow.Hidden = True Case 3 Range("A26:A30").EntireRow.Hidden = False Range("A31:A35").EntireRow.Hidden = True Case 4 Range("A26:A31").EntireRow.Hidden = False Range("A32:A35").EntireRow.Hidden = True Case 5 Range("A26:A32").EntireRow.Hidden = False Range("A33:A35").EntireRow.Hidden = True Case 6 Range("A26:A33").EntireRow.Hidden = False Range("A34:A35").EntireRow.Hidden = True Case 7 Range("A26:A34").EntireRow.Hidden = False Range("A35").EntireRow.Hidden = True Case 8 Range("A26:A35").EntireRow.Hidden = False End Select End Sub 

我有这些直接加载到VBA编辑器的“查看代码”位,因为我不知道如何使用模块。

我还想要另一个脚本,如果Z40的值是PowerPoint或Verbal,将取消隐藏第41行,如果Z40的值为None,将隐藏第41行。

谢谢你们!

那么这应该是非常基本的:

 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Call Script1(Target) Call Script2(Target) End Sub Private Sub Script1(ByVal Target As Range) If Intersect(Target, Range("AE49")) Is Nothing Then Exit Sub Select Case Target.Value Case 1 Range("A50:A52").EntireRow.Hidden = False Range("A53:A55").EntireRow.Hidden = True Case 2 Range("A50:A53").EntireRow.Hidden = False Range("A54:A55").EntireRow.Hidden = True Case 3 Range("A50:A54").EntireRow.Hidden = False Range("A55").EntireRow.Hidden = True Case 4 Range("A50:A55").EntireRow.Hidden = False End Select End Sub Private Sub Script2(ByVal Target As Range) If Intersect(Target, Range("AE25")) Is Nothing Then Exit Sub Select Case Target.Value Case 1 Range("A26:A28").EntireRow.Hidden = False Range("A29:A35").EntireRow.Hidden = True Case 2 Range("A26:A29").EntireRow.Hidden = False Range("A30:A35").EntireRow.Hidden = True Case 3 Range("A26:A30").EntireRow.Hidden = False Range("A31:A35").EntireRow.Hidden = True Case 4 Range("A26:A31").EntireRow.Hidden = False Range("A32:A35").EntireRow.Hidden = True Case 5 Range("A26:A32").EntireRow.Hidden = False Range("A33:A35").EntireRow.Hidden = True Case 6 Range("A26:A33").EntireRow.Hidden = False Range("A34:A35").EntireRow.Hidden = True Case 7 Range("A26:A34").EntireRow.Hidden = False Range("A35").EntireRow.Hidden = True Case 8 Range("A26:A35").EntireRow.Hidden = False End Select End Sub