VBA中的过程调用或参数错误无效

时间:2011-11-09 12:22:28

标签: excel vba error-handling

我收到此错误,我真的不知道为什么。

我有以下代码:

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

你们有什么想法我为什么得到无效的程序调用或参数?非常感谢!

2 个答案:

答案 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位于“(此处为某些文本)”形式。如果该假设错误,将发生上述错误。如果单元格为空,无论是(或)缺失还是()之前都会发生这种情况(。