我有一个阵列的 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
答案 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