Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск ошибки в массиве - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск ошибки в массиве (Макросы Sub)
Поиск ошибки в массиве
Андрей Дата: Среда, 29.01.2014, 09:04 | Сообщение № 1
Группа: Гости
добрый день
Помогите пожалуйста: есть список (массив) значений, являющихся формулой.
Среди них может попасться ошибка.
Как мне найти эту ошибку, и определить ее адрес, чтоб установить курсор на нее?
Достаточно найти первую, дальше искать нет необходимости.
 
Ответить
Сообщениедобрый день
Помогите пожалуйста: есть список (массив) значений, являющихся формулой.
Среди них может попасться ошибка.
Как мне найти эту ошибку, и определить ее адрес, чтоб установить курсор на нее?
Достаточно найти первую, дальше искать нет необходимости.

Автор - Андрей
Дата добавления - 29.01.2014 в 09:04
KuklP Дата: Среда, 29.01.2014, 09:55 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Помогите пожалуйста: есть список (массив) значений, являющихся формулой.

1) Где есть? У нас нет;
2) так "значений" или "являющихся формулой"? Это принципиально разные вещи.
В общем читайте правила форума и выкладывайте файл. Если нужна помощь...


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Помогите пожалуйста: есть список (массив) значений, являющихся формулой.

1) Где есть? У нас нет;
2) так "значений" или "являющихся формулой"? Это принципиально разные вещи.
В общем читайте правила форума и выкладывайте файл. Если нужна помощь...

Автор - KuklP
Дата добавления - 29.01.2014 в 09:55
Андрей Дата: Среда, 29.01.2014, 10:31 | Сообщение № 3
Группа: Гости
Извините, что не приложил список, но пока нет возможности зарегистрироваться.
Столбец 1 -число, столбец 2 - число. В столбце 3 макросом прописывается формула - сумма двух ячеек соответствующей строки и протягивается на все ячейки.
Задача - выявить в столбце 3 ошибку, как вариант - #ЗНАЧ! если в столбцах 1 или 2 не число. И указать адрес этой ячейки.
Я делал так:
[vba]
Код

Dim amass As Range
Dim radress As String
Set amass = Range("C2:C" & string_qty).Find("#ЗНАЧ!", , xlValues)
If amass Is Nothing Then
MsgBox "проверка1 прошла успешно"
Else
radress = amass.Address
a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly)
Range(radress).Select
Exit Sub
End If
End sub
[/vba]
string_qty - это количество строк в массиве, вычисляется ранее.
но так он не видит ошибку, потому что это не значение ячейки.
Пробовал перевести все формулы в значения перед поиском - тоже не увидел.

пробовал еще вот так:
[vba]
Код

For Each cell In amass
If IsNumeric(cell.Value) = False Then
radress = amass.Address
a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly)
Range(radress).Select
Exit Sub
End If
Next
MsgBox "проверка1 прошла успешно"

End Sub
[/vba]
в результате - ошибки видит, но выделяет всегда весь массив, а не конкретную ячейку.
 
Ответить
СообщениеИзвините, что не приложил список, но пока нет возможности зарегистрироваться.
Столбец 1 -число, столбец 2 - число. В столбце 3 макросом прописывается формула - сумма двух ячеек соответствующей строки и протягивается на все ячейки.
Задача - выявить в столбце 3 ошибку, как вариант - #ЗНАЧ! если в столбцах 1 или 2 не число. И указать адрес этой ячейки.
Я делал так:
[vba]
Код

Dim amass As Range
Dim radress As String
Set amass = Range("C2:C" & string_qty).Find("#ЗНАЧ!", , xlValues)
If amass Is Nothing Then
MsgBox "проверка1 прошла успешно"
Else
radress = amass.Address
a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly)
Range(radress).Select
Exit Sub
End If
End sub
[/vba]
string_qty - это количество строк в массиве, вычисляется ранее.
но так он не видит ошибку, потому что это не значение ячейки.
Пробовал перевести все формулы в значения перед поиском - тоже не увидел.

пробовал еще вот так:
[vba]
Код

For Each cell In amass
If IsNumeric(cell.Value) = False Then
radress = amass.Address
a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly)
Range(radress).Select
Exit Sub
End If
Next
MsgBox "проверка1 прошла успешно"

End Sub
[/vba]
в результате - ошибки видит, но выделяет всегда весь массив, а не конкретную ячейку.

Автор - Андрей
Дата добавления - 29.01.2014 в 10:31
KuklP Дата: Среда, 29.01.2014, 10:45 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Андрей, оформляйте код тегами.
[vba]
Код
Public Sub www()
     Dim amass As Range
     On Error Resume Next
     Set amass = Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns(3)).SpecialCells(xlCellTypeFormulas, 16)
     If amass Is Nothing Then
         MsgBox "проверка1 прошла успешно"
     Else
         MsgBox "Ячейка " & amass(1).Address & " содержит ошибку!", vbOKOnly
         amass(1).Select
         Exit Sub
     End If
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеАндрей, оформляйте код тегами.
[vba]
Код
Public Sub www()
     Dim amass As Range
     On Error Resume Next
     Set amass = Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns(3)).SpecialCells(xlCellTypeFormulas, 16)
     If amass Is Nothing Then
         MsgBox "проверка1 прошла успешно"
     Else
         MsgBox "Ячейка " & amass(1).Address & " содержит ошибку!", vbOKOnly
         amass(1).Select
         Exit Sub
     End If
End Sub
[/vba]

Автор - KuklP
Дата добавления - 29.01.2014 в 10:45
Андрей Дата: Среда, 29.01.2014, 11:09 | Сообщение № 5
Группа: Гости
Спасибо.
Я пытался тегами, что-то не особо получилось.
Позже попробую.
Что такое 16, можете сказать?
 
Ответить
СообщениеСпасибо.
Я пытался тегами, что-то не особо получилось.
Позже попробую.
Что такое 16, можете сказать?

Автор - Андрей
Дата добавления - 29.01.2014 в 11:09
KuklP Дата: Среда, 29.01.2014, 11:11 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
То же, что и xlerrors - ошибки.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеТо же, что и xlerrors - ошибки.

Автор - KuklP
Дата добавления - 29.01.2014 в 11:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск ошибки в массиве (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!