Vb.net:在Excel表格中调用showAllData()时出现Interop异常?

3
我在输入的Excel表格上应用了一些过滤器,所以我决定使用vb.net中的showAllData()方法来移除它们。
MSDN参考文献:http://msdn.microsoft.com/en-us/library/bb178108(v=office.12).aspx 但是,在那一行上它会抛出一个非常奇怪的异常:Exception from HRESULT: 0x800A03EC 我的代码:
sh = myWorkBook.Sheets(2)
' sh is my sheet
sh.Visible = True
sh.Activate()
sh.Select()
sh.ShowAllData()     ' Exception raised on this line

我做错了什么?

这是什么异常?最近我经常看到它,但从来没有清楚地知道出了什么问题?


如有遗漏之处,请随时询问以获取额外信息。 - Yugal Jindle
2个回答

3

问题已解决:

测试时,我用来输入的表格没有过滤数据。

所以,这里是代码更改:

sh = myWorkBook.Sheets(2)
' sh is my sheet
sh.Visible = True
sh.Activate()
sh.Select()
If sh.FilterMode = True Then
    sh.ShowAllData()
End If

额外的if解决了问题。但是抛出的异常并没有提供有用的信息,请尽可能地解释异常。

0
但提出的异常仍然没有什么帮助。如果有人能解释一下异常,那就请解释一下。
如果数据未被过滤,则ShowAllData()会产生错误,因此您必须像您正确做的那样进行检查 :)
这是另一种方法。
        On Error Resume Next
        xlsheet.ShowAllData()
        On Error GoTo 0

要移除 AutoFilter,您可以使用此代码

        If xlsheet.AutoFilterMode = True Then xlsheet.AutoFilterMode = False

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接