首页 > 解决方案 > 如何在包含 5000 行数据的工作表中在 vba 中编写 vlookup?

问题描述

Sub test
    Dim z As Long
    z = Range("A" & Rows.Count).End(xlUp).Row
    Range("C4").Formula ="=Vlookup(A4, '[EMP.txt]EMP'!$A$2:$C2,3,False)"
    Range("C4").Copy
    Range("C4:C" & z).pastspecial xlPasteAll
End sub

我的公式在我的代码中有效,但它省略了几行,所以我的总数不匹配。如果我将 vlookup 公式更改为=Vlookup(A4,’[EMP.txt]EMP’!$A$2:$C176,3,False),它将覆盖所有内容,但范围会每周更改。我该如何解决?

标签: excelvba

解决方案


因为在您的代码中,您已经有一个变量命名为z您在 A 列中存储最后一个非空白单元格的行,您可以使用相同的行号来更新您的范围Vlookup

所以替换行:

Range("C4").Formula ="=Vlookup(A4, '[EMP.txt]EMP'!$A$2:$C2,3,False)"

Range("C4").Formula ="=Vlookup(A4, '[EMP.txt]EMP'!$A$2:$C" & z & ",3,False)"

推荐阅读