复制合并的单元格使目标也成为合并的单元格

Copy merged cells making target also a merged cell

我有一个合并单元格A1:B1 我想复制那个合并的单元格,但是我想以同样的方式合并一个源单元格。

Sub Copy()

Sheet2.Range("A1").Copy
Sheet2.Range("A5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

使用此代码,我会将 A1 的值粘贴到 A5,但是 A5 不会与 B5 合并,这就是我要查找的结果。

您可以明确指定要合并的目标单元格。并且可以通过计算源单元格合并区域的行数和列数来指定合并区域。

Sub Example()
    Dim Src As Range
    Set Src = Range("A1")
    
    Dim Dst As Range
    Set Dst = Range("A5")
    
    Dst.Value = Src.Value
    
    Dst.Resize(Src.MergeArea.Rows.Count, Src.MergeArea.Columns.Count).Merge
End Sub

为了复制格式,除了上面的代码外,添加这些行:

    Src.Copy
    Dst.PasteSpecial xlPasteFormats
    Application.CutCopyMode = False

但是由于您要复制值和格式,因此复制整个范围可能比先复制一个再复制另一个更容易:

Sub Example2()
    Dim Src As Range
    Set Src = Range("A1")
    
    Dim Dst As Range
    Set Dst = Range("A5")
    
    'Copy Src to Dst
    Src.Copy Dst
    
    'Merge Dst like Src
    Dst.Resize(Src.MergeArea.Rows.Count, Src.MergeArea.Columns.Count).Merge
    
    'The first row of Dst may accidentally change height during the copy/paste
    Dst.Rows(1).RowHeight = Src.Rows(1).RowHeight
End Sub