使用格式和公式复制并粘贴到每个新工作表

时间:2017-11-30 23:37:27

标签: excel-vba vba excel

我需要您在VBA代码上的帮助,使用范围方法将粘贴复制到每个新的工作表,格式和公式。 以下是我所拥有的两种变体。一个复制和粘贴格式,但粘贴为值,另一个保留公式但不保留格式。 非常感谢您的帮助。

  1. 这会保留格式,但会粘贴为值

    rngHeader.Copy Destination:=.Range("A4")
    res.Copy Destination:=.Range("A5")
    
  2. 这会保留公式,但会丢失格式

    .Range("A4").Resize(, rngHeader.Columns.Count).Formula = rngHeader.Formula
    .Range("A5").Resize(res.Rows.Count, res.Columns.Count).Formula = res.Formula
    

1 个答案:

答案 0 :(得分:0)

如果要全部粘贴,请尝试:

res.Copy
.Range("A4").PasteSpecial xlPasteAll '~~> paste to destination

编辑:1 根据评论,如果它是一个非连续的单元格,那么您将不得不循环或使用暴力。

  1. 蛮力

    With Sheet1 '~~> change to your actual sheet
        res.Copy
        .Range("A4").Select '~~> you have to select the destination
        .Paste '~~> use Sheet.Paste method
    End With
    
  2. 循环

    Dim c As Range, i As Long: i = 0
    
    With Sheet1
        For Each c In res
            c.Copy
            .Range("A4").Offset(i).PasteSpecial xlPasteAll
            i = i + 1
        Next
    End With