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

Excel VBA按C列内容插入行时避免改动表头的代码修改咨询

VBA代码修改方案

修改后完整代码

Sub InsertRowOnCColumnChange()
    Dim lastRow As Long
    ' 获取C列最后一个包含内容的行号
    lastRow = Cells(Cells.Rows.Count, "C").End(xlUp).Row
    ' 从最后一行向上遍历,到第16行停止,不会处理表头所在的第15行及以上区域
    For sRow = lastRow To 16 Step -1
        If Cells(sRow, "C") <> Cells(sRow - 1, "C") Then
            Rows(sRow).EntireRow.Insert
        End If
    Next sRow
End Sub

核心修改说明

  • 原代码循环终止值为3,会一直向上遍历对比到第3行,导致表头区域被误插入行。将终止值修改为16后,遍历只会执行到第16行为止,仅处理数据区域。
  • 修正了原代码中声明lRow变量但未实际使用的问题,改用lastRow存储C列最后有效行号,逻辑更规范。
  • 如果不需要在表头和第一条数据之间插入空行,可将循环终止值调整为17,此时只会对比两条数据行之间的C列内容,不会触发表头和第一条数据之间的插入逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:15:03