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

Excel VBA向表格新增列填充公式如何动态定位表格最后一行

VBA动态填充公式到最后一行的实现方案

方案1:直接批量写入公式(最推荐,无需选中单元格,执行效率更高)

你之前的LastRow变量是行号数值,只需要和列字母拼接成完整的单元格范围字符串即可,不需要单独写首行再填充,直接给整个范围赋值公式,Excel会自动适配相对引用:

' 建议优先用有数据的列计算最后一行,避免UsedRange有空白单元格导致取值不准
LastRow = Cells(Rows.Count, "D").End(xlUp).Row ' 这里D列是你公式引用的左侧列,有完整数据
' 直接给E2到E最后一行的所有单元格写入公式
Range("E2:E" & LastRow).FormulaR1C1 = "=RC[-1]=R[-1]C[-1]"

方案2:首行写入后用AutoFill填充

如果你需要保留先写首行再填充的逻辑,用以下代码即可:

LastRow = Cells(Rows.Count, "D").End(xlUp).Row
' 写入首行公式
Range("E2").FormulaR1C1 = "=RC[-1]=R[-1]C[-1]"
' 从E2自动填充到E&LastRow
Range("E2").AutoFill Destination:=Range("E2:E" & LastRow)

错误原因说明

  • 你之前直接替换E10为LastRow不生效,是因为单元格范围需要字符串格式的地址,需要把列标识和行号用&拼接成完整字符串
  • 空列用xlDown无法定位最后一行,是因为该方法会从当前单元格向下找第一个非空单元格,空列会直接跳到工作表最大行,所以要基于已有数据的列计算最后一行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:48:00