Vb.net: исключение взаимодействия, когда showAllData () на листе Excel? - PullRequest
3 голосов
/ 30 ноября 2011

У меня есть несколько фильтров, примененных к моим входным листам Excel, поэтому я решил удалить их, используя метод showAllData() в vb.net.

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 ]

3 голосов
/ 30 ноября 2011

Исправлено:

Листы, которые я использовал для ввода, не имели отфильтрованных данных при тестировании.

Итак, изменение кода:

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 голосов
/ 13 января 2012

Но все же возникшее исключение не помогло. Объясните исключение, если кто-то может.

ShowAllData () выдает ошибку, если данные не фильтруются, и, следовательно, вы должны проверить это, как вы правильно сделали:)

Вот еще один способ сделать это

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

А для удаления автофильтра вы можете использовать этот код

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