VBA,使用查找时出错

我有两个表BW和PSW。

随着BW的数据从第4行开始。上面的3行被合并,我有一些命令button那里。 纸张PSW从第一行开始。

我正在寻找sheet1中的ID,它从L5开始,当ID与sheet2匹配时,它将从sheet2中的date拉到sheet1。 我正在使用下面的代码。 该代码不执行任何输出。 谁能告诉我错在哪里?

我想,在下面的行,范围从A开始,因为我的数据从第5行开始,它不计数。 如果是这样的话,那么我该如何改变范围。 我有这个代码运行,如果我的数据开始row1没有任何命令button。

totalrows = Sheets(“BW”)。Cells(Rows.Count,“A”)。End(xlUp).Row

Sub lookupePSR() Dim totalrows As Long, totalrowsSht2 As Long totalrows = Sheets("PSW").Cells(Rows.Count, "A").End(xlUp).Row totalrowsSht2 = Sheets("PSW").Cells(Rows.Count, "A").End(xlUp).Row Sheets("PSW").Range("AA5:AA" & totalrows).Formula = Application.WorksheetFunction.IfError(Application.VLookup(Sheets("PSW").Range("L5:L" & totalrowsSht2), Sheets("PSW").Range("$A:$L"), 7, 0), "") End Sub 

正如评论中所提到的,把实际的公式放到工作表中; 可选地还原为由公式返回的值。

 with Sheets("PSW").Range("AA5:AA" & totalrows) .Formula = "=iferror(vlookup(l5, $a:$g, 7, false), text(,))" 'optionally revert the formulas' returned values to values in cells .value = .value end with 

TEXT(,)""相同。 即一个零长度的string。 我使用这个,因为你必须在上面的公式中引用的string中使用双引号(例如""变成"""" ),并且使事情混淆。

我已经将查找范围缩小到A:G,因为您只查找范围中的第七列。