【问题标题】:Need to save xls file as xlsx, close and then reopen it需要将xls文件另存为xlsx,关闭再重新打开
【发布时间】:2015-12-23 18:14:18
【问题描述】:

我收到了一个 .xls 文件,可以在我的宏中使用。 .xls 文件的问题是它们无法处理我运行宏所需的行数。因此,为了解决这个问题,我尝试首先将发送的文件保存为 .xlsx 文件,然后按计划继续使用宏。不幸的是,一旦我到达 APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN & "x") 我收到一个错误:需要对象。我的代码有什么问题?我是否正在采取最好的方法来解决我的 .xls 问题?

MsgBox "Please select APPS Invoice file"
APPSInvoiceFN = Application.GetOpenFilename'

If APPSInvoiceFN = False Then ' User Pressed Cancel
    MsgBox "APPS Invoice file not selected. APPS invoice will not be updated."
    Application.ScreenUpdating = True
    Exit Sub
Else
    On Error GoTo ErrHandler
    Set APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN)
    On Error GoTo 0

APPSInvoiceWB.SaveAs FileFormat:=51
APPSInvoiceWB.Close savechanges:=True
APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN & "x")

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您忘记了最后一行的 Set 关键字:

    Set APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN & "x")
    

    就方法而言……这种方法通常可以很好地转换格式。

    【讨论】:

      【解决方案2】:

      我不确定,因为您发布了部分代码,您是否将 APPSInvoiceWB 声明为工作簿。

      Dim APPSInvoiceWB as Workbook

      并改变这部分 APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN & "x")set APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN & "x")

      您缺少Set,因此出现错误。

      另外,按照 Tim 的建议进行更改

      【讨论】:

        【解决方案3】:

        试试

        APPSInvoiceWB.SaveAs FileName:= APPSInvoiceFN & "x", FileFormat:=51
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-20
          • 1970-01-01
          相关资源
          最近更新 更多