我已經搜索了很多資源來嘗試解決我的問題,但是我沒有成功。我是VBA的初學者,所以我的代碼很可能看起來非常混亂。爲了提出這個問題,我會盡量保持工作表中的信息爲最小值Excel VBA:錯誤處理僅適用於一次傳遞
我有兩張表'數據'和'原始數字'。
數據包含標題爲「Property」和「Phone Number」的列,但只有「Property」有數據。
Raw Numbers包含相同的列,但缺少一些「屬性」值,因爲它只包含與這些屬性關聯的一定數量的電話號碼。
DATA SHEET:
Property。 。 。 。數
1阿達聖
2阿達聖
3阿達聖
4阿達聖
5阿達聖
6阿達聖
RAW NUMBERS SHEET:
性質。 。 。 。號碼
1 Ada St。 。 。 。 12345678
2 Ada St。 。 。 。 12356322
5 Ada St。 。 。 。 12551122
6 Ada St。 。 。 。 12212112
我有一個代碼將數字自動導入到數據表中,但一旦達到3 Ada St,它將返回錯誤(400),因爲在原始數字上沒有3個Ada St。我包含一個錯誤處理程序,但它只能在再次返回錯誤之前有效。
這是到目前爲止我的代碼:
Sub Button_Click()
Worksheets("Data").Range("B4").Select 'B4 is the Number column in the data sheet
Do While ActiveCell.Offset(0, -1) <> ""
On Error GoTo ErrorHandler
ActiveCell.Value = Application.WorksheetFunction.IfError(WorksheetFunction.VLookup(ActiveCell.Offset(0, -1), ThisWorkbook.Worksheets("Raw Numbers").Range("Numbers"), 2, False), "")
ErrorHandler:
ActiveCell.Offset(1, 0).Select
Loop
End Sub
我寫的代碼這種方式,因爲我本來就具有的功能,而不是代碼的工作,但是那是太亂了。 IfError函數在那裏,因爲如果沒有數字附加到地址,我希望單元格爲空。我試圖將其轉換爲錯誤處理程序的一部分,但它只是給了我一個錯誤。
有人請幫助我!如果您需要更多信息,我會很樂意提供。我會不斷觀看這個線索!
這並沒有完全奏效,但是我最終使用公式和此代碼的組合。 我把公式放入單元格中,並在填充結果的按鈕中添加「ActiveCell.Value = ActiveCell.Value」部分。這使我能夠立即將細胞轉換爲它們的值而不是公式。 謝謝!我希望我能找到適當的解決方法。 我現在的問題是,當我點擊我的清除按鈕時,它不會將公式放回到這些單元格中。如果我要通過具有我的技能的代碼來做到這一點,那麼命名每一個單元格將是非常乏味的。 – 2013-04-22 14:14:33
找到解決方案!謝謝你們 – 2013-04-22 14:33:46