检查Vbscript中数组中的值

时间:2017-10-18 15:33:39

标签: excel-vba vbscript vba excel

我有一个阵列的 app.getValue( “Model.OutputArrays.FinalCompleteFileName_Array”)= “6F_HMBDConfig_978153ewnqsettgb73171_1219_31_640.pdf”, “6F_HMBDConfig_978153ewnqsettgb73171_1219_31_640.pdf”, “6F_HMBDConfig_978153ewnqsettgb73171_1219_31_640.pdf”

如果数组中已存在 pdfname ,我必须应用条件或检查数组,然后它将转到If条件下。但是对于下面的代码,即使pdfname存在于filename_array中,pdfname总是会转到Else条件。

请在我出错的地方纠正我。

sub run

pdfname = "6F_HMBDConfig_978153ewnqsettgb73171_1219_31_640.pdf"
filename_array = app.getValue("Model.OutputArrays.FinalCompleteFileName_Array")
TestArray = Split(filename_array , ",")
  For i=Lbound(TestArray) to Ubound(TestArray)
    If StrComp(TestArray(i), pdfname , 1) = 0 Then
      CompareStrings = True
     MsgBox("Found " & pdfname & " at index " & i)
    Else
     CompareStrings = False
     MsgBox "String not found!"
End If
Next

end sub

1 个答案:

答案 0 :(得分:1)

似乎app.getvalue返回一个字符串,其中包含pdf文件名,每个名称都用双引号包围。因此,删除这些双引号,如下所示,然后再次运行代码。

替换它:

filename_array = app.getValue("Model.OutputArrays.FinalCompleteFileName_Array")

使用:

filename_array = replace(trim(app.getValue("Model.OutputArrays.FinalCompleteFileName_Array")),"""","")

替代解决方案:

如果您不想使用replace方法,则可以修改if条件以使用instr方法而不是strcomp方法,如下所示:

If InStr(1,TestArray(i), pdfname , 1) > 0 Then
      CompareStrings = True
     MsgBox("Found " & pdfname & " at index " & i)
    Else
     CompareStrings = False
     MsgBox "String not found!"
End If