Страницы: 1
RSS
в VBA проверить ячейку на ошибку
 
Имеется ячейка с формулой, которая может выдавать значения ошибок (#Н/Д и т.п)  
требуется если Ячейка не содержит ошибку Then выполнить код  
 
или if Ячейка является числом Then выполнить код  
 
помогите!
 
If IsNumeric(ячейка.Value) Then  
 
Если известен вид ошибки, то можно проверить значение, например, для #Н/Д:  
If ячейка.Value <> "#N/A"  Then  
 
Или так:  
If Not Application.WorksheetFunction.IsError(ячейка.Value) Then  
'IsError = ЕОШИБКА, IsNA = ЕНД
Bite my shiny metal ass!      
 
Или так: If Not IsError(ActiveCell) Then MsgBox "Нет ошибки"
 
Перепробовал все способы, работает.  
Спасибо.
 
Здравствуйте. Решил не создавать новую тему а эту освежить, таким вопросом. Как в коде VBA проверить, что в ячейке находится дата ну например 01.01.2011. Знаю что ексель хранит дату и время в числовом формате, но может есть какой то способ? Спасибо!
 
{quote}{login=}{date=06.04.2011 06:40}{thema=Как проверить что в ячейке формат даты}{post}Как в коде VBA проверить, что в ячейке находится дата ну например 01.01.2011. {/post}{/quote}  
 
If IsDate(ActiveCell) Then MsgBox "В активной ячейке находится дата!"  
 
 
Вот только IsDate почему-то распознаёт дату даже в ячейке, где содержится текст 1,2,2011  
(Excel не распознаёт этот текст как дату)
 
Игорь, я так понял из вопроса, надо на конкретную дату проверить, что-то вроде:  
If ActiveCell = #1/1/2011# Then MsgBox "В активной ячейке находится дата!"  
Но может я и ошибаюсь.
Я сам - дурнее всякого примера! ...
 
Да Игорь все правильно вы поняли, надо именно на формат проверить, а не на конкретную дату, я думаю если к вашему методу добавить такую проверку:  
 
If (IsDate(ActiveCell) And ActiveCell.Value Like "*.*.*" Then MsgBox "В активной ячейке находится дата!"  
Тогда исключится вариант с запятыми
Страницы: 1
Читают тему
Наверх