EPPlus添加VBA代码会破坏生成的xlsx文件

时间:2017-12-27 07:55:57

标签: excel vb.net xlsx epplus xlsm

我正在使用EPPlus从数据表创建一个excel文件并将其保存到文件中,这些都是相当标准的。这没有任何麻烦。但是,如果我创建一个vba项目,并添加任何vba代码,则生成的.xlsx文件会突然损坏。尝试使用2013打开它时,会出现标准错误。

  

" Excel无法打开文件' xyz.xlsx'因为文件格式或文件   扩展无效。验证文件扩展名是否与。匹配   文件格式。

如果我将扩展名更改为.xls,则文件打开正常,脚本运行正常。我是最新的Epplus测试版(4.5.0.1)。我应该只更改文件扩展名并坚持使用.xls,还是有什么不妥之处?

ExcelPackage.Workbook.CreateVBAProject()
ExcelPackage.Workbook.CodeModule.Code = "'Script is here"
Dim FInfo as new FileInfo("C:\Myfiles\ThisFile.xlsx")
ExcelPackage.SaveAs(FInfo)

1 个答案:

答案 0 :(得分:1)

您无法将VBA代码添加到XLSX文件格式。 看看here

  

<强>的.xlsx:

     

Excel 2007-2013的默认基于XML的文件格式。不能存储   Microsoft Visual Basic for Applications(VBA)宏代码或Microsoft   Office Excel 4.0宏表(.xlm)。

另请查看here  看看不同格式之间的差异:

  

XLSM如果在XLSX文件中包含VBA宏,则会要求您提供   将文件扩展名更改为XLSM。只有那样你才能保存你的   Excel文件中的宏(可能有其他文件类型,例如   XLSB - 但您不能将XLSX用于VBA宏)

将您的文件保存为XLSM,它应该可以正常工作。