点击这里给我发消息
点击这里给我发消息
¥1891.00元
智超淘宝店
类application的save方法无效ERROR800A30EC
转载
文章标签 VBS

后端 [EXCEL]Application.Save ErrorCode=
透过 Excel.Application 调用 Save Method 存档时,在 Excel 2013 会发生 ErrorCode=-2146827284 HRESULT: 0x800A03EC 的错误,要怎么办呢?


最近同事发现通过 Excel.Application 调用 Save Method 存档时,在 Excel 2013 会发生如下的错误:

System.Runtime.InteropServices.COMException was unhandled
ErrorCode=-2146827284
HResult=-2146827284
Message=发生例外状况于 HRESULT: 0x800A03EC
Source=Microsoft.Office.Interop.Excel

测试程序,开启 Excel 档,然后直接 Save,如下,


'加入 Microsoft.Office.Interop 参考
'Imports Microsoft.Office.Interop
Dim xlsApp As New Excel.Application
xlsApp.Workbooks.Open("h:t1.xls")
xlsApp.Save()
xlsApp.Quit()
MessageBox.Show("Save OK!")

查看 Excel 中浏览对象查询 Save Method 并不在 Application 对象身上,不过 Application.Save 在 Office 2013 前是可以运行的说 (因为客户换成了 office 2013 程序才发生错误)!

该不会跟之前 “旧的 RAISERROR 语法在 SQL 2012 不相容问题” 的问题一样吧!?

即然它不再能用了,只好改用 Workbook 的 Save (xlsApp.ActiveWorkbook.Save()),如下,


Dim xlsApp As New Excel.Application
xlsApp.Workbooks.Open("h:t1.xls")
xlsApp.ActiveWorkbook.Save()
xlsApp.Quit()
MessageBox.Show("Save OK!")

转载自:https://www.dazhuanlan.com/meggiewillhappy/topics/933979


这种解题思路值得学习。本人解决的方向错了,一直认为是权限或COM+的问题。即没有想到是语法不一样了。应该直接在宏里调用代码的。