Excel 2013 – 在一个工作表中使用多个Private Sub命令

我使用下面的代码来运行我的macros的一个取决于在下拉字段中select的项目,下面是我使用的代码:

这完美的作品,除了我想在第一个下面再次重复这个过程。 它只是根据下拉字段中的答案粘贴信息。 我想在单元格A136中再次这样做 – 任何帮助将不胜感激,每当我尝试我得到的错误,或者它什么都不做。

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A43")) Is Nothing Then Select Case Range("A43") Case "Amputation": Amputation Case "Asthma": Asthma Case "Burns_No_Smoke_Inhalation_Not_On_Limb": Burns_No_Smoke_Inhalation_Not_On_Limb Case "Burns_No_Smoke_Inhalation_On_Limb": Burns_No_Smoke_Inhalation_On_Limb Case "Burns_Smoke_Inhalation_Not_On_Limb": Burns_Smoke_Inhalation_Not_On_Limb Case "Burns_Smoke_Inhalation_On_Limb": Burns_Smoke_Inhalation_On_Limb Case "Closed_Fracture": Closed_Fracture Case "CORD": CORD Case "CPR_Patient_Does_Not_Recover": CPR_Patient_Does_Not_Recover Case "CPR_Patient_Does_Recover": CPR_Patient_Does_Recover Case "Dislocation": Dislocation Case "Hyperthermia": Hyperthermia Case "Hypothermia": Hypothermia Case "Open_Fracture_Major_Bleeding": Open_Fracture_Major_Bleeding Case "Open_Fracture_Minor_Bleeding": Open_Fracture_Minor_Bleeding Case "Open_Wound_Major_Controlable_Bleeding": Open_Wound_Major_Controlable_Bleeding Case "Open_Wound_Minor_Bleeding": Open_Wound_Minor_Bleeding Case "Open_Wound_Needs_Tourniquet": Open_Wound_Needs_Tourniquet Case "Spinal_Injury_Conscious_No_KED": Spinal_Injury_Conscious_No_KED Case "Spinal_Injury_Conscious_With_KED": Spinal_Injury_Conscious_With_KED Case "Spinal_Injury_Unconscious_No_KED": Spinal_Injury_Unconscious_No_KED Case "Spinal_Injury_Unconscious_With_KED": Spinal_Injury_Unconscious_With_KED End Select End If End Sub 

您可以通过用以下代码replace整个Select Case语句来大大简化该代码:

 Application.Run Range("A43").Value 

那么你的事件处理程序将变成:

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A43")) Is Nothing Then Application.Run Range("A43").Value ElseIf Not Intersect(Target, Range("A136")) Is Nothing Then Application.Run Range("A136").Value End If End Sub 

对于需要做更多工作而不是调用另一个macros的情况,可以将整个Select Case部分放在一个单独的函数中,并将相关的单元格作为Rangeparameter passing给它