如何修改VBA代码实现仅在A列最后一行对应C列粘贴公式
解决VBA公式仅填充到A列对应最后行的问题
修改后的完整代码
Sub Formula_property() Dim wb As Workbook Dim ws As Worksheet Dim lastRow As Long Set wb = ActiveWorkbook Set ws = Sheets("Sheet3") ' 获取A列最后一个非空单元格的行号 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 仅在C2到C列对应最后行的区域填充公式 ws.Range("C2:C" & lastRow).Formula = "=extractDate(A2)" End Sub
关键修改说明
- 动态获取最后行:通过
ws.Cells(ws.Rows.Count, "A").End(xlUp).Row精准定位A列最后有数据的行号,避免固定行数导致的冗余填充。 - 动态设置填充范围:将原固定的
C2:C2500改为ws.Range("C2:C" & lastRow),确保公式只填充到A列数据对应的C列位置。 - 优化代码效率:移除不必要的
wb.Activate和ws.Select,直接通过工作表对象操作单元格,避免界面交互,提升代码稳定性。
额外提示
原公式中的=extractDate(A2:A2)可简化为=extractDate(A2),VBA填充时会自动将相对引用的A2调整为对应行的单元格(如C3对应A3),效果一致且更简洁。
内容的提问来源于stack exchange,提问作者Salman Shafi
相关产品推荐
相关产品推荐

