如何在指定文本单元格下方的列中添加两个单元格(替代插入整行)
如何在指定文本单元格下方的列中添加两个单元格(替代插入整行)
嗨,我来帮你搞定这个问题!你原来的代码是插入整行,但其实咱们只需要在目标列(也就是B列)里,给值为"YIELD"的单元格下方添两个单元格就行,不用动整行,这完全可以做到~
首先得提个小细节:你原来从上到下遍历B列的方式,插入新单元格后,循环会碰到刚插入的空单元格(因为它们在原单元格下方),可能导致重复插入。所以最好改成从下往上遍历,这样就不会被新插入的单元格干扰啦。
给你改好的代码,直接用就行:
Dim c As Range ' 从B列最后一个有数据的单元格开始往上遍历,避免重复处理新插入的单元格 For Each c In Range("B" & Cells(Rows.Count, "B").End(xlUp).Row & ":B1").Reverse If c.Value Like "YIELD" Then ' 在当前单元格下方插入1个单元格,同列下方单元格自动下移,执行两次就得到两个新单元格 c.Offset(1, 0).Insert Shift:=xlDown c.Offset(1, 0).Insert Shift:=xlDown End If Next c
简单解释下关键变化:
- 把原来的
.EntireRow.Insert换成了.Insert Shift:=xlDown:这个操作只会在B列的指定位置插入单元格,让同列下方的单元格下移,不会影响其他列的内容。 - 遍历方式改成从下往上:用
Reverse反转了遍历顺序,从B列最后一个有数据的单元格开始往第一行走,这样插入新单元格后,不会打乱还没遍历到的上方单元格,避免重复插入的问题。
如果你的需求就是只在B列添加单元格,其他列保持原样,这个代码完美匹配你的需求~
备注:内容来源于stack exchange,提问作者RogerP
相关产品推荐
相关产品推荐

