对不起,我认为这是非常基本的,但我想知道是否有人可以告诉我为什么只有这些IF陈述似乎运行。第IF“CASH”选项的声明工作,但其他2不幸的是没有。多个VBA if语句触发不同的事件
Sub HideUnhide_Discount()
If Range("Payment_Option") = "Subscription" Then
Range("MnthD_Row").EntireRow.Hidden = False
Range("MnthD").Value = 0
Else
Range("MnthD_Row").EntireRow.Hidden = True
End If
If Range("Payment_Option") = "Lease" Then
Range("OOD_Row").EntireRow.Hidden = False
Range("Leasing_Info").EntireRow.Hidden = False
Range("OOD").Value = 0
Else
Range("OOD_Row").EntireRow.Hidden = True
Range("Leasing_Info").EntireRow.Hidden = True
End If
If Range("Payment_Option") = "Cash" Then
Range("OOD_Row").EntireRow.Hidden = False
Range("MnthD_Row").EntireRow.Hidden = False
Range("OOD").Value = 0
Else
Range("OOD_Row").EntireRow.Hidden = True
Range("MnthD_Row").EntireRow.Hidden = True
End If
End Sub
他们这样做,但是当你到达一个第三它cancells其他两个,第三个'If'不嵌套在前两个 –
的“Else”部分中,可以显示任何数据吗? –
如果您在第一个“If”行开始处放置一个断点(F9),然后再通过调试器中的代码执行F8步骤,您会发现前两个“If”的“Else”块.End If' blocks当前两个条件评估为“False”时执行。这可能不是你想要写的。事实上,“Else”块应该在哪种情况下运行并不清楚; 'Range(“Payment_Option”)'检查需要在'Select Case'或'If ... Else If'块中,并且您需要计算出哪些情况需要'MnthD_Row','Leasing_Info'和' OOD_Row'隐藏。 –