我正在尝试将事件工作表的内容复制到新工作簿中。

Sub new_workbook()

    Dim ExtBk As Workbook
    Dim ExtFile As String

    Columns("A:N").Copy

    Workbooks.Add.SaveAs Filename:="output.xls"
    ExtFile = ThisWorkbook.Path & "\output.xls"

    Set ExtBk = Workbooks(Dir(ExtFile))
    ExtBk.Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone

    Application.DisplayAlerts = False
    ExtBk.Save
    Application.DisplayAlerts = True

End Sub

我在PasteSpecial行出现了错误,并在主题上指定了错误。我有点困惑,因为如果我将其定向到源工作簿,这会起作用。

也许我需要使用Windows(output.xls)?

最佳答案

如果只考虑保存值,则根本不要使用Copy方法。

Sub new_workbook()
Dim wbMe As Workbook: Set wbMe = ThisWorkbook
Dim ws As Worksheet: Set ws = wbMe.ActiveSheet
Dim ExtBk As Workbook

Set ExtBk = Workbooks.Add
ExtBk.SaveAs Filename:=wbMe.Path & "\output.xls"

ExtBk.Worksheets("Sheet1").Range("A:N").Value = ws.Range("A:N").Value

Application.DisplayAlerts = False
ExtBk.Save
Application.DisplayAlerts = True

End Sub

注意:如果未保存ThisWorkbook,这将失败(以前的代码也将失败)。

关于excel - 如何将事件工作表的内容复制到新工作簿?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17281872/

10-12 23:30