如何用VBA在Excel中插入公式并实现动态填充至最后一行
优化后的VBA代码(自动填充至数据最后一行+移除Select语句)
优化说明
- 移除所有
Select/ActiveCell语句,通过直接引用单元格区域提升代码效率与稳定性 - 自动识别公式依赖列(F列)的最后一行数据,动态填充公式至对应行
- 修正原公式末尾的语法错误(多余引号)
优化后代码
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
相关产品推荐
相关产品推荐

