【问题标题】:Copy excel range to new xlsx file将excel范围复制到新的xlsx文件
【发布时间】:2017-06-12 07:52:17
【问题描述】:

我正在尝试使用以下代码将启用宏的工作簿中的范围复制到新的 excel 文件中,然后将其发送给公司。

将新文件另存为 csv 时代码有效,但我注意到它丢失了格式,因此我需要将其另存为 excel 文件。

我收到运行时错误 1004 和消息说方法保存为对象工作簿失败。

我所做的唯一更改是使用 .csv 扩展名并更改为 .xlsx。

Sub exportJuneCredit()
     '
     ' export Macro

    Range("A1:H500").Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    ActiveWorkbook.SaveAs Filename:= _
    "file path Credits.xlsx" _
    , FileFormat:=xlsx, CreateBackup:=False
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

End Sub

【问题讨论】:

  • 实际上您似乎也将FileFormat:=xlCSV 更改为FileFormat:=xlsx,这是无法识别的格式。你可能想要FileFormat:=xlOpenXMLWorkbook

标签: excel vba


【解决方案1】:

试试这个:-

Sub exportJuneCredit()
    Dim WkSht_Src   As Worksheet
    Dim WkBk_Dest   As Workbook
    Dim WkSht_Dest  As Worksheet
    Dim Rng As Range

    Set WkSht_Src = ActiveSheet
        Set Rng = WkSht_Src.Range("A1:H500")
            Set WkBk_Dest = Application.Workbooks.Add
                Set WkSht_Dest = WkBk_Dest.Worksheets(1)
                    Rng.Copy WkSht_Dest.Range("A1")
                Set WkSht_Dest = Nothing
                WkBk_Dest.SaveAs Filename:="file path Credits.xlsx", FileFormat:=XlFileFormat.xlWorkbookNormal, CreateBackup:=False
                WkBk_Dest.Close 0
            Set WkBk_Dest = Nothing
        Set Rng = Nothing
    Set WkSht_Src = Nothing

End Sub

我相信您遇到的问题是 activeworkbook 可能不是您想要保存的工作簿,为了解决这个问题,我已明确声明了项目。

我还将复制/粘贴更改为仅使用复制功能。

【讨论】:

  • 完美运行。谢谢
  • 虽然在创建文件后不允许我打开文件。将文件格式更改为:YowE3K 提到的 xlOpenXMLWorkbook。
  • 您对范围进行了硬编码。有没有办法将范围动态设置为包含数据的最后一行?
  • WkSht.Range("A1:H" & WkSht.Range("A" & wksht.Rows.Count).End(xlUp).Row).Address 这样的东西可以做到。 end(xlUP) 是重要部分
【解决方案2】:

虽然创建后不允许我打开文件。将文件格式更改为:YowE3K 提到的 xlOpenXMLWorkbook。 – PA060 2017 年 6 月 12 日 11:42

Gary Evans 给出的代码是保存为向后兼容的 .xls 格式。如果您将文件名更改为以 .xls 作为扩展名,它将允许您打开。

如果您想要 .xlsx 文件,请将文件格式更改为 YowE3K 提到的 xlOpenXMLWorkbook。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多