2014-01-23 273 views
1

我想對某些數據執行一些操作,但它們不工作,我需要找到一種方法來忽略那些不符合所有要求的單元。處理錯誤

基本上,我有一個列,其中一些單元格在其內容中具有文本+數字,而其他單元格只有文本。我在裏面搜索了所有內容,並將TEXT分爲一列,另一列分爲NUMBER。然後,我運行一個宏來爲其他列中的每個文本找到匹配的文本。

但是,當我嘗試從NUMBERS分離文本時,我搜索第一個「(」,導致我的數字格式爲(10.10.10),但是如果找不到,則單元格值出現:#VALUE!( OK,預計造成的字符未找到),這是問題所在:!如果我跑我的宏在」#VALUE它crashs和鴕鳥政策完成其執行

我曾嘗試使用

On Error GoTo

在我的宏代碼

,但由於某些原因,它doesn't無法處理。「運行時錯誤:類型不匹配」

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 

有什麼建議嗎?我可以考慮忽略這個錯誤(當它發生時,我的變量contadorOr會增加並且不會有下一個值),或者避免#VALUE的任何方法!由我的職能返回,但沒有成功做到這一點。 在此先感謝。

+0

您使用的是什麼版本的Excel? – user3056839

+0

該錯誤在哪一行發生? –

+0

Excel 2010.此錯誤發生在這裏:如果InStr(1,Cells(contadorDes,colunaDestino).Value,Cells(contadorOr,colunaOrigem).Value)然後 – fhbeltrami

回答

2

而不是使用錯誤處理選項,你可以檢查你要檢查/處理的單元是否不返回錯誤。這很簡單,如下所示:

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 
+0

偉大的答案男人!現在它完美的=) – fhbeltrami

+0

不客氣! –