我有许多案例的列表,它们定义了一个客户端ID。在每种情况下,都需要遵循几个If语句才能返回一些东西。因为只有大约15个特殊情况,其余的都在" Case Else",在某些情况下,一个案例不会跟随任何If语句,因此将其留空。
如果某个案例不属于任何If语句,我可以将其路由到" Case Else"?
例如:在此代码中,如果ID为10,则 Left(ISIN,2)不是" US",& #34; UK"或者" CH",我可以将案例路由到Case Else吗?
Case 10
'(U.S.)
If klienta_nr = 10 And (Left(ISIN, 2) = "US") Then
Komisija = Summa * 0.002
.Cells(lngCounter, lngKom) = Komisija
'min USD 20
If Komisija <= 20 Then
.Cells(lngCounter, lngKom) = 20
End If
End If
'(UK)
If klienta_nr = 10 And (Left(ISIN, 2) = "UK") Then
Komisija = Summa * 0.002
.Cells(lngCounter, lngKom) = Komisija
'min GBP 20
If Komisija <= 20 Then
.Cells(lngCounter, lngKom) = 20
End If
End If
'(Šveices)
If klienta_nr = 10 And (Left(ISIN, 2) = "CH") Then
Komisija = Summa * 0.002
.Cells(lngCounter, lngKom) = Komisija
'min CHF 20
If Komisija <= 20 Then
.Cells(lngCounter, lngKom) = 20
End If
End If
'Non-special klient cases
Case Else
'IP2, 0.03% komisija, 40 EUR/USD Max
If Right(vk, 1) = 1 Or Right(vk, 1) = 8 Then
Komisija = Summa * 0.003
.Cells(lngCounter, lngKom) = Komisija
End If
'IP1, 0.1% komisija, 40 EUR/USD Max
If Right(vk, 1) = 7 Then
Komisija = Summa * 0.01
.Cells(lngCounter, lngKom) = Komisija
End If
'Komisija MAX is 40, so anything >=40 equals 40
If Komisija >= 40 Then
.Cells(lngCounter, lngKom) = 40
End If
答案 0 :(得分:0)
虽然不建议使用Goto
滥用,但有时会让生活更轻松。
根据您的情况,您可以放置&#34; 标签&#34;在Case Else
之后的第一个陈述之前并使用Goto
,即
Select Case myExpression
Case 1
Some code
If someThing Then GoTo LabelCaseElse
Some code
Case 2
If someThing Then GoTo LabelCaseElse
Some code
Case Else
LabelCaseElse:
msgBox "You are in Case Else!!"
End Select