【问题标题】:Need to save xls workbook As xlsb with VBA需要使用 VBA 将 xls 工作簿保存为 xlsb
【发布时间】:2015-07-28 04:12:38
【问题描述】:

我使用宏来创建每日报告。宏将 xls 报告历史保存为 xls。由于文件很大,我想将报告另存为 xlsb。两个问题。我正在使用的宏脚本将运行,但稍后我无法打开 xlsb 文件。收到的消息是

“Excel 无法打开文件'RDN Activity Report.xlsb',因为文件格式或文件扩展名无效。验证文件没有损坏并且文件扩展名与文件格式匹配。

txtFileName = Format(Date - 1, "yyyymmdd")
ActiveWorkbook.SaveAs Filename:= _
    "\\Clt-stor01a\CA_Services\RDN Reports\ForUploadPrev\RDN Activity Report." & txtFileName & ".xlsb", _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    txtFileName = Format(Date - 1, "yyyymmdd")

注意:我还需要一个可以在文件名中包含日期且文件日期为昨天的日期(例如“RDN Activity Report.20150726”)时打开文件的脚本

【问题讨论】:

  • xlNormal 更改为xlExcel12

标签: excel vba


【解决方案1】:

使用SaveAs参数FileFormat

  • 50 = xlExcel12(2007-2013 年的 Excel 二进制工作簿,带或不带宏, xlsb)

  • 51 = xlOpenXMLWorkbook(2007-2013 年没有宏,xlsx)

  • 52 = xlOpenXMLWorkbookMacroEnabled(2007-2013 年有或没有宏,xlsm)

  • 56 = xlExcel8(Excel 2007-2013 中的 97-2003 格式,xls)

    ActiveWorkbook.SaveAs "C:\temp\text.xlsb", fileformat:=50
    

【讨论】:

  • 只是为了明确 MatthewD 的答案——将文本字符串“.xlsb”放在文件名参数中就像手动更改文件扩展名一样。它不会更改文件的格式。为此,您需要使用 FileFormat 参数。
  • @nwhaught 是正确的。不管你叫什么工作簿,文件格式就是设置格式。
猜你喜欢
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多