Возможно ли, чтобы VBA обнаружил ошибку и дал подсказку, что данные недоступны вместо сообщения об ошибке? - PullRequest
2 голосов
/ 22 марта 2012

Я создал графический интерфейс, который будет настраивать сводную таблицу.

Например, я нажимаю button1, он запускается и настраивает сводную таблицу.

Когда я нажимаю button3, он будет иметь run time error 1004, потому что у него нет значения в данных.Так можно ли позволить VBA принять эту ошибку и показать подсказку, что эти данные недоступны?

enter image description here

Кстати, я использую это

ActiveSheet.PivotTables("PivotTable1").PivotFields("Test").CurrentPage = "Data1"

для настройки сводной таблицы.

Существует 3 различные переменные; Данные1 , Данные2 , Данные3 .Если Data3 недоступен, появится сообщение об ошибке, но я хочу получить сообщение о том, что оно недоступно. Если вы знаете, как это сделать, поделитесь им со мной!Спасибо!

Ответы [ 2 ]

5 голосов
/ 22 марта 2012

Да.Для этого вам нужно сделать соответствующую обработку ошибок.Посмотрите этот пример кода.

Sub Sample()
    On Error GoTo Whoa

    '<Your REST OF THE CODE>

LetsContinue:
    Exit Sub
Whoa:
    '~~> This gives the exact desription and the error number of the error
    MsgBox "Description     : " & Err.Description & vbNewLine & _
           "Error Number    : " & Err.Number

    '~~> This part resumes the code without breaking it :)
    Resume LetsContinue
End Sub
1 голос
/ 22 марта 2012

Я бы просто сделал это:

On Error Resume Next ' Don't stop execution when an error occurs.
ActiveSheet.PivotTables("PivotTable1").PivotFields("Test").CurrentPage = "Data1"

If Err.Number <> 0 Then ' Can also check for a specific error number instead
    'Oops! An error occured.
    MsgBox "Data isn't available."
    Err.Clear
End If

On Error GoTo 0 ' Go back to stoping execution when an error occurs.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...