Vb.net:在Excel工作表上显示showAllData()时的Interop异常?

时间:2011-11-30 11:25:32

标签: vb.net excel interop excel-vba vba

我在输入的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

我做错了什么?

这是什么例外,我最近看到了这么多。但它永远不清楚出了什么问题?

2 个答案:

答案 0 :(得分: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,解决了这个问题。

但是,提出的例外情况仍然没有帮助。如果有人可以解释异常。

答案 1 :(得分:0)

  
    
      

但是,提出的例外情况仍然没有帮助。如果有人可以解释异常。

    
  

ShowAllData()如果数据未被过滤则会出错,因此你必须正确地检查它:)

这是另一种方法

        On Error Resume Next
        xlsheet.ShowAllData()
        On Error GoTo 0

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

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