在Select Case中使用InStr函数

时间:2014-02-19 17:01:19

标签: excel vba excel-vba excel-2010

这似乎不起作用。有没有办法做我想在这里做的事情?如果值在给定的刺激中,我无法选择一个案例:

Select Case gTTD.Cells(r, 4)

     Case InStr(gTTD.Cells(r, 4), "MASTER LOG")
         resp = "MM LOG"
      Case InStr(gTTD.Cells(r, 4), "MASTER MET")
         resp = "MM MET"
     Case "PIR"
         gTTD.Cells(r, 7) = "Martin Trépanier"
         resp = "Martin Trépanier"

 End Select

我理解为什么这个不能工作,但是有办法让它起作用吗?谢谢

谢谢

2 个答案:

答案 0 :(得分:22)

这是我使用的一个小技巧,select语句只是想找到相同的结果。这是一个简单的例子:

    Select Case True
        Case (1 = 2)
            Stop
        Case (2 = 3)
            Stop
        Case (4 = 4)
            Stop
        Case Else
            Stop
    End Select

这将属于4 = 4的情况。在您的示例中,这可能是一个简单的答案:

Select Case True

     Case (InStr(gTTD.Cells(r, 4), "MASTER LOG") > 0)
         resp = "MM LOG"
      Case (InStr(gTTD.Cells(r, 4), "MASTER MET") > 0)
         resp = "MM MET"
     Case else
         gTTD.Cells(r, 7) = "Martin Trépanier"
         resp = "Martin Trépanier"
 End Select

答案 1 :(得分:0)

试试这个

dim r as integer
for r = 1 to 'number of rows
    if Instr(gTTD.Cells(r, 4), "MASTER LOG") <> 0 then
         resp = "MM LOG"
    elseif Instr(gTTD.Cells(r, 4), "MASTER MET") <> 0 then
        resp = "MM MET"
    else
        gTTD.Cells(r, 7) = "Martin Trépanier"
        resp = "Martin Trépanier"
    end if
next r