Excel Instr函数找不到子字符串

Excel Instr函数找不到子字符串,excel,function,vba,Excel,Function,Vba,我有以下VBA代码,它为InStr函数返回“0”: If InStr("ICD-10 & CPT OPC NHSN", "JCMC ICD-10 & CPT OPC NHSN Sep-17 new.xlsx") > 0 Then 'Do something End If 但是,以下代码使用WorksheetFunction.Find函数将子字符串定位在位置6: If Application.WorksheetFunction.Find("ICD-10 & C

我有以下VBA代码,它为InStr函数返回“0”:

If InStr("ICD-10 & CPT OPC NHSN", "JCMC ICD-10 & CPT OPC NHSN Sep-17 new.xlsx") > 0 Then
   'Do something
End If
但是,以下代码使用WorksheetFunction.Find函数将子字符串定位在位置6:

If Application.WorksheetFunction.Find("ICD-10 & CPT OPC NHSN", "JCMC ICD-10 & CPT OPC NHSN Sep-17 new.xlsx") > 0 Then
    'Do something
End If
为什么工作表函数返回6,而InStr函数没有定位子字符串?

如果查看,您将看到两个必需参数中的第一个是要搜索的字符串,第二个参数是要搜索的字符串

string1必需。正在搜索字符串表达式。
string2必需。寻找字符串表达式

因此,您的代码需要

If InStr("JCMC ICD-10 & CPT OPC NHSN Sep-17 new.xlsx", "ICD-10 & CPT OPC NHSN") > 0 Then
   'Do something
End If

我每次用它都得查。我总是把它倒过来。@ScottCraner我99%的时间都是对的(因为我使用
InStr
的次数比很多其他函数都多),但当我倒过来的时候,我的第一个想法是“我使用了正确的参数吗?”,所以不需要太长的时间来修复。我在工作表上的FIND()和vba中的InStr()之间来回跳跃,以及SqlServer上的SUBSTRING(),我永远无法保持它们的正确性。@ScottCraner混合中没有VB.Net?这总是让我困惑,回到我在一家允许我使用VB.Net的公司工作的时候(咕哝,咕哝,咕哝,愚蠢,现在的公司不让我使用它,因为我可能会编写代码侵入主要的it系统:(),因为有很多东西都和VBA一样,但时不时会有一些东西略有不同。:DDon别误会,我以前也用过,现在还不如其他三种。在混合中加入一点能量壳,就像在葡萄牙语、西班牙语、法语和意大利语之间切换,加上一点Ru我只是为了咯咯笑。