我一直试图找出方法来区分加载工作表的excel实例和不支持工作表的实例
目前我使用代码打开看起来像这样的现有文件:
Dim wkbWorkBook as Excel.Workbook
Dim objExcel As Excel.Application
wkbWorkBook = System.Runtime.InteropServices.Marshal.BindToMoniker(filename)
objExcel = wkbWorkBook.Parent
'To make the excel app visible while working with it:
objExcel.Visible = true
我在使用此代码时注意到的是,如果我打开一个存在但未在Excel中打开的文件,当我使Excel应用程序可见时,工作表不可见,但它们确实存在(我可以访问worksheets.count并且有适当数量的工作表)
我尝试使用Worksheets.Visible但我注意到它只有“可见”值的地方有一个HRESULT错误。
当我尝试获取Visible属性时出现相同的错误,即使工作表可见(在我BindToMoniker()的情况下,当前在excel中打开的文件...)
我的部分问题是为什么BindToMoniker()+ Application = workbook.Parent总是给我一个没有任何工作表加载的Excel应用程序..当它就像那时我无法使用它..
答案 0 :(得分:0)
没有保证,但我会说workheets.visible - >因为工作表会为您提供工作表列表,因此无法使用。
你不能申请.visible - >你必须使用工作表(1).visible
此外,如果没有任何工作表,这应该会失败。你必须先检查你的工作表数量。
另一件事 - 我不知道这是否可以在vb.net下使用interop,但也许您可以通过其内部代号访问特定的工作表 - 如下所示:
pobjExcel.table1.visible