我已经搜索了很多资源来尝试解决我的问题,但是我没有成功。我是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