将工作表复制到新的工作簿中,并保持粘贴值和格式。

问题描述 投票:0回答:1

我试图将一个工作表复制到一个新的工作簿中,将所有公式粘贴为值,同时保留所有格式、表名等。新的文件名应该是 "大学",并存储在与原始文件相同的位置。

"Error 1004.Range类的PasteSpecial方法失败。Range类的PasteSpecial方法失败"

与我当前的(复制的)脚本。

Sub new_workbook()

Dim Output As Workbook
Dim FileName As String

Set Output = Workbooks.Add
Application.DisplayAlerts = False

ThisWorkbook.Worksheets("Report").Copy

Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=True, Transpose:=False

FileName = ThisWorkbook.Path & "\" & "University.xlsx"
Output.SaveAs FileName

End Sub
vba format copy worksheet
1个回答
1
投票

Worksheet.Copy 没有 之前之后 指定创建一个新的工作簿,所以只需在此基础上工作。

更多细节来自 文件:

如果您没有指定任何一项 之前之后的工作簿,Microsoft Excel创建了一个新的工作簿,其中包含复制的 Worksheet 对象。新创建的工作簿拥有 Application.ActiveWorkbook 属性,并包含一张工作表。

Sub new_workbook()

    ThisWorkbook.Worksheets("Report").Copy '<-- creates a new workbook with a copy of your sheet

    Dim Output as Workbook
    Set Output = ActiveWorkbook

    With Output.Worksheets(1).UsedRange
        .Value = .Value '<-- changes all formulas to values
    End With

    Dim FileName As String
    FileName = ThisWorkbook.Path & "\University.xlsx"

    Application.DisplayAlerts = False
    Output.SaveAs FileName

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.