vba vlookup在循环中不起作用

时间:2016-06-09 11:56:49

标签: excel vba loops macros vlookup

我正在开发一种分析数据的工具。将要分析的数据手动复制到第一张表中,然后我计划运行一个宏,将数据分析到第二张表中。我需要为每个条目的一个属性使用vlookup函数:

Worksheets("x1").Cells(z, 4).Value = Application.WorksheetFunction.VLookup(Worksheets("x1").Cells(z, 2).Value, Worksheets("x2").Range("$A$1:$B$23"), 2, False)

显然z是指示当前行的变量(我在“for”-loop中复制了大约700行数据。)

每当我尝试执行整个sub时,它都会返回运行时错误(1004)。关于它的奇怪之处在于,无论何时我使用单个步骤来执行宏,它都可以正常工作。

有人知道这里有什么意思吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

以下是一些示例错误处理代码,可帮助您实现目标。

Sub TestVLookup()

    On Error GoTo ErrHandler
    For Z = 1 To 700
        Worksheets("x1").Cells(Z, 4).Value = Application.WorksheetFunction.VLookup(Worksheets("x1").Cells(Z, 2).Value, Worksheets("x2").Range("$A$1:$B$23"), 2, False)
    Next Z

Exit Sub

ErrHandler:
    Debug.Print "Z: " + CStr(Z) + "|" + CStr(Err.Number) + ": " + Err.Description

End Sub