2016-11-03 103 views
0

選擇工作表如果我只創建一個工作簿以下工作正常有多個工作簿打開crahses

Dim oXl As New Microsoft.Office.Interop.Excel.Application 
Dim wb_main As Workbook 
wb_main = oXl.Workbooks.Add 
...add sheets and data to sheets 
CType(wb_main.Worksheets(1), Worksheet).Select() 
wb_main.SaveAs(Filename:=_files(0)._file_path.parentDir.parentDir & "out.xlsx") 

但隨着兩個開放,我得到一個錯誤。互操作錯誤不易調試。使用Excel 2013年,一種錯誤谷歌表示有很多人用不同的問題,據我可以告訴0x800A03EC:

Dim oXl As New Microsoft.Office.Interop.Excel.Application 
Dim wb_main As Workbook 
Dim wb_extended As Workbook 
wb_main = oXl.Workbooks.Add 
wb_extended = oXl.Workbooks.Add 
...add sheets and data to sheets in both workbooks, no particular order 
CType(wb_main.Worksheets(1), Worksheet).Select() 
wb_main.SaveAs(Filename:=_files(0)._file_path.parentDir.parentDir & "out.xlsx") 

我得到一個錯誤HRESULT。

+0

如果用'DirectCast'和'TryCast'代替'CType(wb_main.Worksheets(1),Worksheet)',那麼該怎麼辦?你使用的是什麼框架和64/32位機器和代碼編譯位數? –

+0

@ T.S。這不會改變任何事情,正如我所料。 – blindguy

+0

事件日誌中是否有任何內容,特別是.net運行時? –

回答

2

.Select()只適用於活動工作簿。選擇之前將會解決問題。

打開的第二個工作簿是活動的。通過使用直接分配的變量編輯工作簿不會更改活動工作簿。