背景:我正在使用Microsoft.Office.Interop.Excel庫在我的Windows窗體程序中打開,處理和保存excel文件。由於我無法完全理解的原因,我需要將屏幕上顯示的信息一次最小化,所以我使用DataTable和DataGridView來操縱存儲在excel文件中的信息。我可以插入和編輯信息,但我的問題是保存。以讀/寫模式打開Excel文件的VB問題
我的問題:
當試圖救回來了使用WorkBook.Save()函數的Excel文件,這些更改不會當我在Excel中打開文件反映。作爲一個測試,我嘗試了.SaveAs()函數來查看發生了什麼,並得到了原始文件以只讀模式打開的錯誤。我使用了.SaveCopyAs()函數來確保我的信息正確輸出,並且保存的副本包含我所做的更改。
我嘗試過任何和所有隻讀和保存屬性的每種可能的組合,我可以找到,以下兩個屬性似乎可以解決大多數其他人的問題,但不會爲我工作。
xlWorkBook = xlApp.Workbooks.Open(currFile, IgnoreReadOnlyRecommended:=True, ReadOnly:=False)
我的代碼是在幾個職能分散,因爲我使用按鈕和菜單項進行操作的程序,但它遵循相同的工作流程從本網站保存例子,除了我設置xlApp.Visible = False
:http://www.siddharthrout.com/2012/09/12/saving-and-closing-the-excel-file-savesave-as-method/。
我很感激任何幫助。
編輯: 忘了提及,我正在使用Excel 2010和Visual Studio 2015與VB Windows窗體應用程序模板。
該行代碼嘗試將Workbook(它沒有)的[默認值](https://stackoverflow.com/a/19200523/11683)賦給預定義的Excel枚舉值'XlWindowType.xlWorkbook '。重命名你的變量並[使用'Set'](https://stackoverflow.com/a/17877644/11683)。 – GSerg
也許 - 但它聽起來好像pmackni正在將數據導入到數據表中,然後將其轉化爲datagridview,然後進行編輯。現在他想要把數據表放回excel文件,所以這個Saveas將不起作用 – codeMonger123
codeMonger123是對的,這是我正在使用的方法。至於Set路由,我使用的VB版本不再支持Sets和Lets,所以這個解決方案對我來說不起作用。我用這行代碼聲明xlWorkBook變量:'Private xlWorkBook As Excel.Workbook'。 – pmackni