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

如何用VBA在Excel中插入公式并实现动态填充至最后一行

优化后的VBA代码(自动填充至数据最后一行+移除Select语句)

优化说明

  1. 移除所有Select/ActiveCell语句,通过直接引用单元格区域提升代码效率与稳定性
  2. 自动识别公式依赖列(F列)的最后一行数据,动态填充公式至对应行
  3. 修正原公式末尾的语法错误(多余引号)

优化后代码

Sub RD_DS_InsertCol_Formula()
'
' RD_DS_InsertCol Macro
'
    Dim ws As Worksheet
    Dim lastRow As Long
    
    Set ws = Sheets("Raw Data - DS")
    
    ' 在C列插入新列
    ws.Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    
    ' 获取F列(公式依赖列)的最后一行数据行号
    lastRow = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row
    
    ' 直接给G2到G最后一行区域赋值公式,无需AutoFill
    ws.Range("G2:G" & lastRow).FormulaR1C1 = _
        "=IF(RC[-1]=""Crossdock"",""CD"",IF(RC[-1]=""PickingPickedAtDestination"",""PP"",IF(RC[-1]=""PickingNotYetPickedPrioritized"",""PNYP"",IF(RC[-1]=""Loaded"",""LD"",""""))))"
End Sub

关键细节

  • 用ws变量绑定目标工作表,避免因当前激活表变化导致的错误
  • 通过Cells(Rows.Count, "F").End(xlUp).Row精准定位数据最后一行,无需手动修改固定行号
  • 直接给整列区域赋值公式比AutoFill更高效,尤其在数据量较大时

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:54:59