Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2013, 15:39   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Пропустить ошибки

Здравствуйте уважаемые программисты. Подскажите пожалуйста как сделать, чтобы при наличии ошибки в ячейке типа #ДЕЛ/0!, #ССЫЛКА! и т.п. Макрос не выдавал Debug, а выдавал номер столбца сегодняшней датой, т.е. пропускал ошибки. On Error Resume Next не подходит, т.к. выдает номер столбца с ошибкой.Private Sub
Код:
Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
For Each n In ActiveSheet.UsedRange.Cells
On Error GoTo dal
If n.Value = Date Then
  iColumn = n.Column
  MsgBox n.Value
  MsgBox iColumn
  End If
dal:
Next
End Sub
Вложения
Тип файла: rar Пример.rar (6.3 Кб, 4 просмотров)
agregator вне форума Ответить с цитированием
Старый 20.04.2013, 16:43   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Предположу, что вот так можно отслеживать любую Excel-ошибку.

Код работает с активной ячейкой:
Код:
Sub Макрос1()

    'Отслеживание любой Excel-ошибки, кроме "#Н/Д".
    'Вывод результата в View - Immediate Window.
    Debug.Print Application.WorksheetFunction.IsErr(ActiveCell)
    
    'Отслеживание только одной Excel-ошибки: "#Н/Д".
    Debug.Print Application.WorksheetFunction.IsNA(ActiveCell)
    
End Sub
Скрипт вне форума Ответить с цитированием
Старый 20.04.2013, 17:42   #3
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Спасибо за внимание. Решил этот вопрос так
Код:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
On Error Resume Next
For Each n In ActiveSheet.UsedRange.Cells
If n.Value <> Date Then
 Else
 iColumn = n.Column
  MsgBox n.Value
  MsgBox iColumn
  End If
Next
End Sub

Последний раз редактировалось agregator; 20.04.2013 в 19:05.
agregator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл for. Пропустить первую строку webber9989 Общие вопросы Delphi 13 03.12.2012 12:20
Пропустить ошибку agregator Microsoft Office Excel 3 22.07.2012 08:10
Пропустить визуализацию devf Microsoft Office Excel 2 09.03.2012 17:15
пропустить значение в цикле Bape}l{ka Microsoft Office Excel 5 18.07.2011 17:34
базу аксесс пропустить через SQL Ane4ka Microsoft Office Access 5 27.05.2008 10:38