复制含合并单元格的区域时如何保留行高?
解决VBA复制区域后合并单元格行高未同步的问题
你可以通过先复制区域内容,再循环遍历原区域的每一行,将行高同步到目标工作表对应行的方式解决这个问题。修改后的VBA代码如下:
Sub copycellsWithRowHeight() Dim sourceRange As Range Dim targetStartCell As Range Dim i As Integer ' 定义源区域(命名区域Ex_d_Visual) Set sourceRange = ThisWorkbook.Names("Ex_d_Visual").RefersToRange ' 定义目标起始单元格(Sheet1的A9) Set targetStartCell = ThisWorkbook.Sheets("Sheet1").Range("A9") ' 复制源区域内容到目标位置 sourceRange.Copy targetStartCell.PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False ' 循环同步每一行的行高 For i = 1 To sourceRange.Rows.Count targetStartCell.Offset(i - 1, 0).RowHeight = sourceRange.Rows(i).RowHeight Next i End Sub
关键说明:
- 直接通过
Names("Ex_d_Visual").RefersToRange获取源区域,避免依赖Select和Goto操作,代码更稳定可靠。 - 使用
xlPasteAll复制所有格式(包括合并单元格设置),但行高仍可能丢失,因此需要单独同步。 - 通过
Offset(i - 1, 0)定位目标对应行:源区域第1行对应目标起始行(第9行),源第2行对应目标第10行,以此类推,i-1即为行偏移量。 - 循环遍历源区域每一行,将行高直接赋值给目标工作表的对应行。
内容的提问来源于stack exchange,提问作者Spectral
相关产品推荐
相关产品推荐

