ExcelApp.Workbooks.SaveAs:HRESULT:0x800A03EC

时间:2019-05-02 08:35:11

标签: excel vb.net interop save-as

我目前正在尝试将我的VB.net程序“保存为” Excel工作簿,只是在实际的“保存为”行上获取异常HRESULT:0x800A03EC。

我检查了我的文件路径,它正常且可以正常工作,所以我目前一无所知

这是我在其中声明与Excel相关的对象的代码

Dim ExcelApp As New Interop.Excel.Application()
Dim Classeur = ExcelApp.Workbooks.Open("C:\Program Files (x86)\Software_name\template.xlsx")
Dim Feuille = Classeur.Sheets("sheet_name")

然后我声明从文本框中获取的值

Dim FileName As String = Textbox1.text + Textbox2.text +  Textbox3.text

Dim FilePath As String = "\\192.168.1.xxx\some\folders\where\names\never\change\" & Date.Today.Year & "\" & FileName & "\"

MkDir(FilePath)

Dim StrPath As String = FilePath & FileName & ".xlsx" 'So I create a document named after FileName

然后我保存

'This works
Classeur.ActiveSheet.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, FilePath & FileName & ".pdf")

'This doesn't works
Classeur.SaveAs(StrPath)

1 个答案:

答案 0 :(得分:0)

我最终发现了问题:用于保存文件的名称不能以空格(“”)结尾,并且看来我的用户在使用时没有真正注意到。因此,我只添加了此代码段,它的工作原理就像是一种魅力。

Dim NameLength As Integer
Dim NameText As String

NameText = TextBox.Text
If Strings.Right(NameText, 1) = " " Then
   NameLength = NameText.Length - 1
   NameText = Strings.Left(NameText, NameLength)
End If