当dataSheet.range.value
中找到的数据值为空时,以下代码抛出异常运行时错误5:无效的过程调用
temp = Right(Trim(dataSheet.range("A" & i).value), Len(Trim(dataSheet.range("A" & i).value)) - 1)
所以我用它来解决它:
If dataSheet.range("A" & i).value <> "" Then
temp = Right(Trim(dataSheet.range("A" & i).value), Len(Trim(dataSheet.range("A" & i).value)) - 1)
Else
Exit For
End If
我的问题是添加if语句是否有效修复?似乎更大的东西可能正在逃避我的掌握......就像不应该在String为NULL时只返回Right()函数?
答案 0 :(得分:3)
空单元格不为空。
问题在于您的公式:如果单元格为空或仅包含空格,则Len(Trim(dataSheet.range("A" & i).value))
为0且Len(Trim(dataSheet.range("A" & i).value)) - 1
为-1
。当您运行Right(someString, -1)
时,您会收到错误。
你应该这样做(它还会处理只包含空格的单元格):
If Len(Trim(dataSheet.range("A" & i).value)) > 0 Then
temp = Right(Trim(dataSheet.range("A" & i).value), Len(Trim(dataSheet.range("A" & i).value)) - 1)
Else
...
End If