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