我正打算在打開的工作簿中調用第5張表。當我打開從程序工作簿我似乎能夠做到這一點:來自WorkBook的調用表
Dim CurrentRun As New Excel.Application
Dim CurrentBook As Excel.Workbook
Dim CurrentSheet As Excel.Worksheet
Private Sub GeneralButtonOpener_Click(sender As Object, e As EventArgs) Handles GeneralButtonOpener.Click
CurrentRun.Visible = True
CurrentBook = CurrentRun.Workbooks.Add(MainTemplatePath)
CurrentSheet = CurrentBook.Worksheets(4)
CurrentSheet.Activate()
End Sub
但是我所有的努力在調用表,如果該文件已經打開失敗:
Dim CurrentRun As Microsoft.Office.Interop.Excel.Application
Dim CurrentBook As Microsoft.Office.Interop.Excel.Workbook
Dim CurrentSheet As Microsoft.Office.Interop.Excel.Worksheet
CurrentRun = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application")
CurrentBook = CurrentRun.Workbooks
CurrentSheet = CurrentBook.Sheets(4)
CurrentSheet.Activate()
或
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim CurrentRun As Microsoft.Office.Interop.Excel.Application
Dim CurrentBook As Excel.Workbook
Dim CurrentSheet As Excel.Worksheet
CurrentRun = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application")
CurrentBook = CurrentRun.ActiveWorkbook
CurrentSheet = CurrentBook.Sheets(4)
CurrentSheet.Activate()
End Sub
我看了幾個例子,但我不知道我要去哪裏錯了。這令我感到驚訝,因爲在這個問題上似乎有很多問題。以太指示解決/解決這個問題的地方,或者我特別做錯的東西,將不勝感激。
謝謝!
你是什麼意思 「失敗」。你的意思是應用程序似乎忽略了你,或者你的意思是它會拋出異常? – JDB 2013-03-20 21:33:09
@ Cyborgx37他們似乎都無視我/什麼都不做。如果我得到一個異常,我會發布它。我嘗試過使用它,如果我做一些愚蠢的事情,比如試圖放置太大的索引(90),我可以擺脫索引錯誤。工作簿本身有10張,所以這不應該是一個問題。 – 2013-03-21 01:25:32
@ Cyborgx37進一步調試,如果我根本沒有打開工作表並且使用裝載了excel的標準書(並刪除索引或添加工作表),我得到以下異常:'無法投射類型爲'的COM對象' System .__ ComObject'改爲接口類型'Microsoft.Office.Interop.Excel.Workbook'。此操作失敗,因爲IID爲「{000208DA-0000-0000-C000-000000000046}」的接口的COM組件上的QueryInterface調用由於以下錯誤而失敗:沒有此類接口支持(異常來自HRESULT:0x80004002(E_NOINTERFACE)) .' – 2013-03-21 01:38:19