我目前正在尝试将我的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)
答案 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