我收到此错误,我真的不知道为什么。
我有以下代码:
Rand = 2
LRand = ws.Cells(Rows.Count, 6).End(xlUp).Row
Do While Rand <> LRand + 1
If ws.Cells(Rand, 4).Value = "" Then
desch = InStr(ws.Cells(Rand, 5).Value, "(")
inch = InStr(ws.Cells(Rand, 5).Value, ")")
ws.Cells(Rand, 4).Value = Mid(ws.Cells(Rand, 5).Value, desch + 1, inch - desch - 1) 'here is the error
End If
Rand = Rand + 1
Loop
你们有什么想法我为什么得到无效的程序调用或参数?非常感谢!
答案 0 :(得分:3)
可能
if desch = 0
or
if inch = 0
desch = instr('this may return zero')
inch = instr('when it doesnt find the substring')
so putting them in mid functions results like these
mid(string,0,0) results error
mid(string(0,2) results error
mid(string(2,0) results error
首先检查这些值
答案 1 :(得分:1)
此代码假定正在处理的单元格的内容ws.Cells(Rand,5).Value位于“(此处为某些文本)”形式。如果该假设错误,将发生上述错误。如果单元格为空,无论是(或)缺失还是()之前都会发生这种情况(。