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