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

复制含合并单元格的区域时如何保留行高?

解决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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:30:16