Невозможно поймать ошибку с помощью оператора ошибки

Sub TextToNum()
Dim af As Double
For Each x In Selection
On Error GoTo 10
af = x.Value 'here appears error
x.NumberFormat = Number
On Error GoTo -1
x.Value = af
10 Next x
End Sub

Если значение ячейки невозможно преобразовать в число (буквы, символы), появляется сообщение об ошибке и выполнение макроса прекращается. Передать эту ошибку через «При ошибке» не удается — сообщение об ошибке появляется в любом случае. Как это решить?

Этот вопрос похож на: Обработка ошибок работает только один раз. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.

Anerdw 20.08.2024 10:57

Выполните это с помощью отладчика. Я считаю, что ваш код правильно обработает первое, но не второе.

Anerdw 20.08.2024 10:58
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать IsNumeric вместо проверки ошибок:

Sub TextToNum()
Dim af As Double
Dim x As Range
For Each x In Selection
    If IsNumeric(x.Value) Then
        af = x.Value
        x.NumberFormat = Number
        x.Value = af
    End If
Next x
End Sub

спасибо, я действительно забыл об этой функции с IsNumeric, уловил важный момент :)

IvanSTV 20.08.2024 10:27

Другие вопросы по теме

Похожие вопросы