首页 > 解决方案 > 将内容从一个工作簿复制到另一个工作簿,以特殊方式粘贴

问题描述

我当前的 vba 代码从我当前的一张表中复制数据,并使用该表中的数据创建一个新工作簿。

Sub copying_data()

Dim FilePath As String: FilePath = ThisWorkbook.Path & "\"
Dim FName As String


FName = FilePath & "Summary_Output_" & _
        Format(Date, "ddmmmyyyy") & ".xlsx"

ThisWorkbook.Sheets("AA_New").Copy
ActiveWindow.DisplayGridlines = False
ActiveWindow.Zoom = 110
ActiveWindow.Zoom = 120
Set NewBook = ActiveWorkbook
NewBook.SaveAs Filename:=FName

End Sub

这目前工作正常,但是当它粘贴数据时,它将它链接到旧工作表,而不是我希望它将数据粘贴为值但保持相同的格式,有没有办法做到这一点?

标签: excelvba

解决方案


首先添加文件,然后将特殊的值和格式复制并粘贴到新工作表中:

Sub copying_data()

    Dim FilePath As String
    FilePath = ThisWorkbook.Path & "\"

    Dim FName As String
    FName = FilePath & "Summary_Output_" & _
            Format(Date, "ddmmmyyyy") & ".xlsx"

    Dim swb As Workbook
    Set swb = ThisWorkbook

    Dim twb As Workbook
    Set twb = Workbooks.Add

    swb.Worksheets("AA_New").UsedRange.Copy

    With twb.Worksheets(1).Range("A1")
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteFormats
    End With

    twb.Worksheets(1).Name = "AA_New"
    twb.SaveAs Filename:=FName
End Sub

推荐阅读