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

VBA技术求助:插入行后设置列值并填充指定列公式

解决方案

问题分析

原代码中Worksheets("MIDP + IRS").Range("I:N").FillDown未生效的核心原因是直接对整列执行填充操作,Excel无法识别需要继承公式的来源行;同时H列的复制逻辑冗余,无需用循环实现。

修改后的完整代码

Sub InsertRowAndFillDown()
    Dim rw As Long
    Dim ws As Worksheet
    
    ' 明确指定目标工作表,避免依赖当前激活表
    Set ws = ThisWorkbook.Worksheets("MIDP + IRS")
    rw = ActiveCell.Row
    
    ' 在当前单元格下方插入新行
    ws.Rows(rw + 1).EntireRow.Insert
    
    ' 设置新行G列的值为2
    ws.Cells(rw + 1, "G").Value = 2
    
    ' 复制上一行H列的值到新行H列
    ws.Cells(rw + 1, "H").Value = ws.Cells(rw, "H").Value
    
    ' 向下填充I:N列公式(仅针对上一行和新行的范围)
    ws.Range(ws.Cells(rw, "I"), ws.Cells(rw + 1, "N")).FillDown
    
    ' 向下填充AJ:AP列公式
    ws.Range(ws.Cells(rw, "AJ"), ws.Cells(rw + 1, "AP")).FillDown
End Sub

关键修改说明

  • 锁定操作工作表:通过Set ws = ThisWorkbook.Worksheets("MIDP + IRS")明确操作对象,避免因切换工作表导致代码执行异常。
  • 简化H列复制逻辑:直接通过单元格引用赋值,替代冗余的循环代码,提升可读性和执行效率。
  • 精准填充公式范围:选择包含上一行(已有公式)和新行的连续区域执行FillDown,让Excel明确公式继承来源,解决原整列填充无效的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:00:59