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

Вход

Регистрация

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

 

= Мир MS Excel/Как обойти значение ячейки #ЗНАЧ! - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как обойти значение ячейки #ЗНАЧ!
SergejSor Дата: Пятница, 09.11.2012, 09:45 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 0% ±

Всем доброго дня. Проблема в следующем, при переборе в столбце ячеек, как только появляется ячейка со значением #ЗНАЧ! то есть с ошибкой, макрос останавливается. Вопрос как можно игнорировать это значение, пропускать например или же чтоб макрос не останавливался. Сам макрос проверяет первый столбец, если значения одинаковые, то суммирует значения из другого столбца, до тех пор пока значение первого столбца не изменится на большее. Ошибки в формулах приводящие к #ЗНАЧ!, можно конечно убрать, но пока это проблематично. Спасибо.
Пример кода:
[vba]
Code

Sub raschet()
Dim xl As Long
Dim st, zn, sum As Variant
st = 5
zn = 5
Do
sum = 0
zn = st
              Do
                  sum = Range("BS" & st).Value + sum
                  st = st + 1
              Loop Until Range("A" & st).Value > Range("A" & st - 1).Value
Range("BT" & zn).Value = sum
Loop Until Range("A" & st + 1) = ""

End Sub
[/vba]


Сообщение отредактировал SergejSor - Пятница, 09.11.2012, 09:48
 
Ответить
СообщениеВсем доброго дня. Проблема в следующем, при переборе в столбце ячеек, как только появляется ячейка со значением #ЗНАЧ! то есть с ошибкой, макрос останавливается. Вопрос как можно игнорировать это значение, пропускать например или же чтоб макрос не останавливался. Сам макрос проверяет первый столбец, если значения одинаковые, то суммирует значения из другого столбца, до тех пор пока значение первого столбца не изменится на большее. Ошибки в формулах приводящие к #ЗНАЧ!, можно конечно убрать, но пока это проблематично. Спасибо.
Пример кода:
[vba]
Code

Sub raschet()
Dim xl As Long
Dim st, zn, sum As Variant
st = 5
zn = 5
Do
sum = 0
zn = st
              Do
                  sum = Range("BS" & st).Value + sum
                  st = st + 1
              Loop Until Range("A" & st).Value > Range("A" & st - 1).Value
Range("BT" & zn).Value = sum
Loop Until Range("A" & st + 1) = ""

End Sub
[/vba]

Автор - SergejSor
Дата добавления - 09.11.2012 в 09:45
Саня Дата: Пятница, 09.11.2012, 10:45 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
напиши в начале процедуры:
[vba]
Code
on error resume next
[/vba]

вариант "дикий", но чтобы написать грамотный обработчик ошибок, нужно понимать нюансы...
 
Ответить
Сообщениенапиши в начале процедуры:
[vba]
Code
on error resume next
[/vba]

вариант "дикий", но чтобы написать грамотный обработчик ошибок, нужно понимать нюансы...

Автор - Саня
Дата добавления - 09.11.2012 в 10:45
Kuzzka Дата: Пятница, 09.11.2012, 10:51 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

На 2007-10 есть формула ЕСЛИОШИБКА, её нельзя использовать?


Как говорит в таких случаях мой психолог:
Да пошли они на... твари долбаные...
 
Ответить
СообщениеНа 2007-10 есть формула ЕСЛИОШИБКА, её нельзя использовать?

Автор - Kuzzka
Дата добавления - 09.11.2012 в 10:51
SergejSor Дата: Пятница, 09.11.2012, 11:42 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 0% ±

Quote (Саня)
on error resume next

вариант "дикий", но чтобы написать грамотный обработчик ошибок, нужно понимать нюансы


Такой вариант подходит, спасибо огромное!
 
Ответить
Сообщение
Quote (Саня)
on error resume next

вариант "дикий", но чтобы написать грамотный обработчик ошибок, нужно понимать нюансы


Такой вариант подходит, спасибо огромное!

Автор - SergejSor
Дата добавления - 09.11.2012 в 11:42
Саня Дата: Пятница, 09.11.2012, 12:45 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Quote (Kuzzka)
На 2007-10 есть формула ЕСЛИОШИБКА, её нельзя использовать?

для отлавливания ошибок использовать функции рабочего листа не советую.

более тонкий подход:
[vba]
Code
dim v
v=Range("BS" & st).Value
if v<>"Error 2015" then                 '  #ЗНАЧ!
' if TypeName(v)<>"Error" then   '  любая ошибка
' if TypeName(v) = "Double" then   ' если там число, или так   IsNumeric(v)
    sum = sum + v
end if
[/vba]
 
Ответить
Сообщение
Quote (Kuzzka)
На 2007-10 есть формула ЕСЛИОШИБКА, её нельзя использовать?

для отлавливания ошибок использовать функции рабочего листа не советую.

более тонкий подход:
[vba]
Code
dim v
v=Range("BS" & st).Value
if v<>"Error 2015" then                 '  #ЗНАЧ!
' if TypeName(v)<>"Error" then   '  любая ошибка
' if TypeName(v) = "Double" then   ' если там число, или так   IsNumeric(v)
    sum = sum + v
end if
[/vba]

Автор - Саня
Дата добавления - 09.11.2012 в 12:45
nerv Дата: Пятница, 09.11.2012, 21:56 | Сообщение № 6
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

[vba]
Code
IsError()
[/vba]


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение[vba]
Code
IsError()
[/vba]

Автор - nerv
Дата добавления - 09.11.2012 в 21:56
Leojse Дата: Четверг, 08.08.2013, 12:19 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Здравствуйте. Есть 2 столбца. В ячейке A1322 и B1322 суммируются числа синих ячеек (используется макрос) по столбцам. Но проблема в том, что в ячейке В1322 постоянно выдается #знач. Подскажите, в чем может быть проблема? Причем если в формуле изменить диапазон суммирования на B8:B198, то макрос начинает считать, но если добавить до 199, то выдает ошибку. Менял форматы, чистил содержимое, ничего не помогает...
 
Ответить
СообщениеЗдравствуйте. Есть 2 столбца. В ячейке A1322 и B1322 суммируются числа синих ячеек (используется макрос) по столбцам. Но проблема в том, что в ячейке В1322 постоянно выдается #знач. Подскажите, в чем может быть проблема? Причем если в формуле изменить диапазон суммирования на B8:B198, то макрос начинает считать, но если добавить до 199, то выдает ошибку. Менял форматы, чистил содержимое, ничего не помогает...

Автор - Leojse
Дата добавления - 08.08.2013 в 12:19
Leojse Дата: Четверг, 08.08.2013, 12:24 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Приклепляю файл (почему-то сразу не приложился...)
К сообщению приложен файл: 1099458.xls (99.0 Kb)
 
Ответить
СообщениеПриклепляю файл (почему-то сразу не приложился...)

Автор - Leojse
Дата добавления - 08.08.2013 в 12:24
  • Страница 1 из 1
  • 1
Поиск:

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