Excel InStr跳过字符数较大的单元格(255+;)

Excel InStr跳过字符数较大的单元格(255+;),excel,vba,Excel,Vba,InStr跳过字符计数较大(255+)的单元格时出现一些问题。 它跳过这些单元格进行子字符串比较 相同的InStr函数适用于同一for循环中字符计数较低的单元格。所以我知道这不是编码问题,而是InStr函数的最大字符串大小限制 有没有办法让InStr处理大字符数的单元格?(255+) 示例代码: If InStr(CStr(Sheet2.Cells(i, 18)), CStr(IssueComboBoxStr)) > 0 Then 您可以使用Find函数 If Not Sheet2.Ce

InStr
跳过字符计数较大(255+)的单元格时出现一些问题。 它跳过这些单元格进行子字符串比较

相同的
InStr
函数适用于同一for循环中字符计数较低的单元格。所以我知道这不是编码问题,而是
InStr
函数的最大字符串大小限制

有没有办法让InStr处理大字符数的单元格?(255+)

示例代码:

If InStr(CStr(Sheet2.Cells(i, 18)), CStr(IssueComboBoxStr)) > 0 Then

您可以使用Find函数

If Not Sheet2.Cells(i,18).Find(Cstr(IssueComboBoxStr),lookat:=xlPart) is Nothing

您可能需要非常仔细地检查字符串

在本演示中,
sBig
包含5000个字符,
sNotSoBig
包含4996个字符
InStr()
在“大”字符串中查找“小”字符串没有问题:


我们需要更多的细节来帮助您调试这个问题。

Mmmm,使用了超过300个字符的单元格,Instr对我来说非常适合。唯一的区别是,我键入了一个开始编号,还键入了一个比较选项(在我的例子中,它是
vbTextCompare
)……作为一个61k用户,为什么你会发布一个基本上说问题无法重现的答案,这是一个很接近的原因?
Sub TestInStr()
    Dim sBig As String, sNotSoBig As String
    Dim i As Long

    sBig = ""
    For i = 1 To 500
        sBig = sBig & "1234567890"
    Next i

    sNotSoBig = Mid(sBig, 5)

    MsgBox Len(sBig) & vbCrLf & Len(sNotSoBig) & vbCrLf & InStr(1, sBig, sNotSoBig)
End Sub