You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA的VLOOKUP无法完全向下填充,仅到1893行如何解决?

解决思路

问题根源

你当前用Range("A2").End(xlDown).Row获取最后一行的逻辑存在缺陷:这个方法会从A2开始向下查找,遇到第一个空单元格就停止计数,哪怕该空单元格之后还有数据(比如你提到的A1894有数据,大概率是A列前1893行连续,但中间存在隐藏的空行、或者单元格包含不可见的空值)。

修复方案

  1. 替换最后一行的获取方式
    改用从A列最底部往上查找的逻辑,确保拿到A列真正的最后一行数据:

    Dim LastRow As Long
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    
  2. 移除多余的FillDown代码
    直接给Range("B2:B" & LastRow).Formula赋值的操作,本身就会把公式填充到整个指定范围,额外的FillDown完全是冗余的,删掉即可。

  3. 可选:优化代码效率
    可以一次性给B、C、D三列批量赋值公式,减少代码行数并提升运行效率:

    'Enter Vlookups to get Invoice, InternalID, Status 
    Dim LastRow As Long
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    Range("B2:D" & LastRow).Formula = Array( _
        "=VLOOKUP(A2,NS!A:N,2,0)", _
        "=VLOOKUP(A2,NS!A:N,3,0)", _
        "=VLOOKUP(A2,NS!A:N,4,0)" _
    )
    

验证

修改后重新运行代码,公式会自动填充到A列所有有数据的行,包括A1894及之后的行。

内容的提问来源于stack exchange,提问作者Ingrid Potter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:47:17