gpt4 book ai didi

vba - Excel VBA : Error handling only works for one pass

转载 作者:行者123 更新时间:2023-12-03 07:50:40 25 4
gpt4 key购买 nike

我搜索了许多资源以尝试解决问题,但是没有成功。我是VBA的初学者,所以我的代码很有可能看起来很凌乱。为了问这个问题,我将尽量减少表格中的信息

我有两张纸,“数据”和“原始数字”。
数据包含标题为“属性”和“电话号码”的列,但是只有“属性”中包含数据。
原始号码包含相同的列,但是缺少一些“属性”值,因为它仅包含与这些属性关联的一定数量的电话号码。

数据表:
属性(property)。 。 。 。数
阿达街1号
阿达街2号
阿达街3号
阿达街4号
阿达街5号
阿达街6号

原始数据表:
属性(property)。 。 。 。数
阿达街1号。 。 。 。 12345678
2 Ada St。 。 。 。 12356322
5 Ada St。 。 。 。 12551122
6 Ada St。 。 。 。 12212112

我有一个代码可以自动将数字导入数据表,但是一旦达到3 Ada St,它就会返回错误(400),因为原始数字上没有3 AdaSt。我提供了一个错误处理程序,但是在再次返回错误之前它只能工作一次。
到目前为止,这是我的代码:

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.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],Numbers,2,FALSE),"""")"
ActiveCell.Value = ActiveCell.Value

未测试...

关于vba - Excel VBA : Error handling only works for one pass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com