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

咨询VBA实现Excel公式沿列整列填充且行号自动适配的方法

问题原因

  • 写入公式时错误使用了Value属性,仅会写入公式计算结果,不会写入公式本身
  • 计算完总行数后没有执行填充操作,公式自然不会向下扩展
  • 行号变量使用Integer类型存在溢出风险(Excel最大支持1048576行,Integer最大值仅为32767),建议修改为Long类型

修正后可直接运行的代码

Dim sourceFormula As String
' 读取源表的公式
sourceFormula = ThisWorkbook.Worksheets("Sample").Range("A2").Formula

Dim targetSht As Worksheet
Set targetSht = ThisWorkbook.Worksheets("Sample 1")

' 写入目标表A2单元格公式
targetSht.Range("A2").Formula = sourceFormula

' 计算目标表最后一行(改为从下往上找,避免X列中间有空行时取值错误)
Dim numr As Long
numr = targetSht.Cells(targetSht.Rows.Count, "X").End(xlUp).Row

' 公式自动填充到最后一行,相对引用会自动适配行号
targetSht.Range("A2").AutoFill Destination:=targetSht.Range("A2:A" & numr), Type:=xlFillDefault

补充说明

如果不想用AutoFill方法,也可以直接给整列范围批量赋值公式,效果完全一致,写法更简洁:

' 替换上面的AutoFill行即可
targetSht.Range("A2:A" & numr).Formula = sourceFormula

你原公式里D2是相对引用,只要是正确写入Formula属性,不管用哪种填充方式,系统都会自动把对应行的引用调整为D3、D4...Dn,完全匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:03:00