处理错误

我正在尝试对某些数据执行一些操作,但是它们不起作用,我需要find一种方法来忽略那些不符合所有要求的单元。

基本上,我有一个列,其中一些单元格的内容中有文本+数字,其他单元格只有文本。 我在里面search,在一列中分割文本,在另一列中分割数字。 然后,我运行一个macros来为其他列中的每一个find匹配的文本。

但是当我尝试从NUMBERS中分离TEXT时,我search了第一个“(”,导致我的数字格式是(10.10.10),但是如果没有find,单元格的值就会出现:#VALUE!(ok,它是预期的原因是没有find字符)。问题是:如果我在“#VALUE!”上运行我的macros,它会崩溃并且不能完成它的执行。

我曾尝试使用

在错误转到

在我的macros代码,但由于某种原因,它不会处理“运行时错误:types不匹配”。

For contadorOr = 2 To colO For contadorDes = 2 To colA On Error GoTo cont If InStr(1, Cells(contadorDes, colunaDestino).Value, Cells(contadorOr, colunaOrigem).Value) Then If InStr(1, Cells(contadorOr, colunaOrigem + 4).Value, Cells(contadorDes, colunaDestino + 1).Value) Then Cells(contadorOr, colunaOrigem + 5).Value = "Mesma versão" End If Exit For End If Next contadorDes cont: Next contadorOr 

有什么build议么? 我可以想到忽略这个错误(当它发生的时候,我的variablescontador或者增加,并且没有下一个值),或者以任何方式避免#VALUE! 由我的职能返回,但没有成功这样做。 提前致谢。

而不是使用error handling选项,你可以检查你要检查/处理的单元是否不返回错误。 这很简单,如下所示:

 If IsError(Cells(contadorDes, colunaDestino).Value) Then 'to do anything if there is error 'usually...do nothing Else 'do what you want if there is no error End if