【发布时间】:2018-04-26 22:05:10
【问题描述】:
我想合并两张纸。在Tabelle 3 中已经有一些数据。因此,我定义了Next Free Row (NFR) 并希望将来自Tabelle 5 的数据添加到Tabelle 3 的下一个空闲行中。因此,我编写了以下 VLookup 函数。
Sub ConsolidateData()
Dim lastrow As Long
Dim NFR As Long
lastrow = Tabelle5.Range("A" & Rows.Count).End(xlUp).Row
NFR = Tabelle3.Range("A" & Rows.Count).End(xlUp).Offset(-3).Row
Set myrange = Tabelle5.UsedRange
For i = 4 To lastrow
Tabelle3.Cells(NFR + i, 1) = Application.WorksheetFunction.VLookup(Tabelle5.Cells(i, 1), myrange, 1, False)
Tabelle3.Cells(NFR + i, 2) = Application.WorksheetFunction.VLookup(Tabelle5.Cells(i, 1), myrange, 2, False)
Next i
End Sub
尽管,我已经在另一个工作簿中使用了此代码,它在其中运行顺畅,但在此处却行不通。而Run-time error '1004' 出现在这一行:
Tabelle3.Cells(NFR + i, 1) = Application.WorksheetFunction.VLookup(Tabelle5.Cells(i, 1), myrange, 1, False)
有没有人看到错误或可以告诉我我的编码错误?
【问题讨论】:
-
NFR的定义为什么要用Offset(-3)?
-
@CFO 我必须设置
i=4因为在Tabelle 5我需要的数据从row 4开始。如果我像这样将它转移到Tabelle 3中的NFR,将会有3 行的间隙。因此我Offset(-3)rows
标签: vba excel runtime-error vlookup