案例选择逻辑[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正试图让这个案子工作,它没有显示我希望的输出......

输入值:

123456 DUPL

Select Case Cells(i, 5).value
   Case InStr(Cells(i, 5).value, "DUPL") = True
      Debug.Print ediData.EDINumber & " = DUPL"
End Select

预期产量:

123456 = DUPL

编辑:

这个Select Case语句的正确用法是什么,以获得我正在寻找的正确输出

vba excel-vba excel
1个回答
2
投票

要在此使用Select case,必须在Select Case行中使用True。

Instr返回的数字不是布尔值,0表示未找到,而0表示字符串中的相对位置:

Select Case True
   Case InStr(Cells(i, 5).value, "DUPL") > 0
      Debug.Print ediData.EDINumber & " = DUPL"
End Select

这就像是:

If InStr(Cells(i, 5).value, "DUPL") > 0 Then
    Debug.Print ediData.EDINumber & " = DUPL"
End If

或者你可以这样做:

Select Case InStr(Cells(i, 5).value, "DUPL")
   Case Is > 0
      Debug.Print ediData.EDINumber & " = DUPL"
End Select
© www.soinside.com 2019 - 2024. All rights reserved.