excel - “Select Case True” - 如何包含 3 个以上的“Case”语句?
问题描述
有人可以帮我写代码吗?我已经介绍了超过 3 个“案例”语句(即 6 个),并且似乎最后 2 个“案例”没有被选中(在下面的代码中标记)。谢谢
Sub yyy()
Dim TW As Workbook: Dim ac As Worksheet
Set TW = ThisWorkbook: Set ac = TW.Sheets(1)
Select Case True
Case ac.Range("G8") = "No" And ac.Range("G9") = "" And ac.Range("G10") = "" And ac.Range("G12") = "" And ac.Range("G11") = ""
ac.Range("F14") = "Continue with Test."
Case ac.Range("G8") = "Yes" And ac.Range("G9") = "" And ac.Range("G10") = "" And ac.Range("G12") = "" And ac.Range("G11") = ""
ac.Range("F14") = "No further action required."
'Yes, Yes, No, Yes
Case ac.Range("G8") <> "" And ac.Range("G9") = "Yes" And ac.Range("G10") = "Yes" And ac.Range("G12") = "Yes" And ac.Range("G11") = "No"
ac.Range("F14") = "No further action required."
'No,No,Yes,No
Case ac.Range("G8") = "No" And ac.Range("G9") = "No" And ac.Range("G10") = "No" And ac.Range("G12") = "No" And ac.Range("G11") = "Yes"
ac.Range("F14") = "Full Test."
'The following is not being picked up? I guess I have introduced too many "Case" statements?
'Cases for Yes No in Q4
Case ac.Range("G8") <> "No" And ac.Range("G9") <> "" And ac.Range("G10") <> "" And ac.Range("G12") <> "" And (ac.Range("G11") = "Yes" Or ac.Range("G11") = "No")
ac.Range("F14") = "Full Test."
Case ac.Range("G8") = "No" And ac.Range("G9") <> "" And ac.Range("G10") <> "" And ac.Range("G12") <> "" And ac.Range("G11") = "Yes"
ac.Range("F14") = "Full Test."
Case Else
End Select
End Sub
解决方案
这完全取决于触发器的逻辑和顺序。请尝试以下:
Sub yyy()
Dim TW As Workbook: Dim ac As Worksheet
Set TW = ThisWorkbook: Set ac = TW.Sheets(1)
Select Case True
Case ac.Range("G8") = "No" And ac.Range("G9") = "No" And ac.Range("G10") = "No" And ac.Range("G12") = "No" And ac.Range("G11") = "Yes"
ac.Range("F14") = "Full Test."
Case Else
End Select
Select Case True
Case ac.Range("G8") = "No" And ac.Range("G9") = "Yes" And ac.Range("G10") = "Yes" And ac.Range("G12") = "Yes" And ac.Range("G11") = "No"
ac.Range("F14") = "No further action required."
Case Else
ac.Range("F14") = "Full Test."
Select Case True
Case ac.Range("G9") = "No" And ac.Range("G10") = "No" And ac.Range("G12") = "Yes" And ac.Range("G11") = "No"
ac.Range("F14") = "No further action required."
End Select
Select Case True
Case ac.Range("G11") = "Yes" Or ac.Range("G12") = "No"
ac.Range("F14") = "Full CRA Test."
End Select
Select Case True
Case ac.Range("G8") = "No" And (ac.Range("G9") = "Yes" Or ac.Range("G9") = "") And ac.Range("G10") = "" And ac.Range("G12") = "" And ac.Range("G11") = ""
ac.Range("F14") = "Continue with Test."
End Select
End Select
End Sub
推荐阅读
- google-play - 不同的 orders.refund 和 purchase.subscriptions.refund 用于 GooglePlay IAP 上的订阅退款
- pine-script - Pinescript(Tradingview)每次都停止并限制不工作
- android - 如何在小部件中强制使用夜间/白天资源?
- python-3.x - 如果后代进程也使用多处理,Python如何防止多处理僵尸
- python-3.x - WritePrinter 失败并显示“需要一个类似字节的对象,而不是打印时的‘str’”
- typescript - TypeScript Compiler API:获取类型结构
- java - Android 不喜欢 Firestore 中的 .add
- openshift - 类似 [lab-user@studentvm 0 ~]$ oc get pods 错误:缺少或不完整的配置信息
- vue.js - 场景宽度错误。带有 ar.js 的 a-frame 使用 Vue 和 ionic
- css - CSS 媒体查询 - 错误还是什么?