编写VBA宏填充合并单元格拆分后的空白行
核心需求:填充拆分后的空白行宏
直接用这段简洁的宏,倒序循环避免行数变动干扰,快速定位空白行并复制上一行内容:
Sub FillBlankRows() Dim lastRow As Long Dim i As Long ' 获取数据区域最后一行(以A列为例,可根据实际调整列号) lastRow = Cells(Rows.Count, "A").End(xlUp).Row ' 从最后一行倒序往上循环,防止填充后行数偏移影响后续判断 For i = lastRow To 2 Step -1 ' 判断当前行是否为空白(这里以A列为判断依据,可替换为数据关键列) If Cells(i, "A").Value = "" Then ' 复制上一行整行内容到当前空白行 Rows(i - 1).Copy Destination:=Rows(i) End If Next i End Sub
- 调整提示:如果你的数据关键列不是A列,把代码里的
"A"改成对应列的编号(比如2代表B列)即可。
非核心需求:简化拆分合并单元格代码
要是你需要快速拆分所有合并单元格,同时把原合并内容填充到拆分后的每一行,用这段极简代码就够:
Sub UnmergeAndFill() ' 取消当前工作表所有合并单元格 ActiveSheet.UsedRange.MergeCells = False ' 用上方单元格内容填充所有空白单元格 ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" ' 将公式转为固定值,避免后续数据变动影响 ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value End Sub
- 说明:
SpecialCells(xlCellTypeBlanks)直接定位所有空白单元格,省去了逐个遍历合并单元格的复杂逻辑,效率更高。
内容的提问来源于stack exchange,提问作者ClaytonKirk
相关产品推荐
相关产品推荐

