![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 39
|
![]()
Подскажите, пожалуйста.
Формулой выполнить рассчёт получается, но надо на VBA. Необходимо рассчитать среднее диапазона, но при условии, что значение не нулевое. С помощью формулы это сделать удалось. Если все значения равны нулю СРЗНАЧЕСЛИ выдаёт ошибку, поэтому дополнительно использую ЕСЛИОШИБКА. =ЕСЛИОШИБКА(СРЗНАЧЕСЛИ(B15:B19;"<>0 ");"0") Но реализовать тоже самое в VBA не получается. Если все значения равны нулю выдаёт ошибку о невозможности рассчитать AverageIf. Но почему эту ошибку не перехватывает IfError??? Cells(21, 2) = WorksheetFunction.IfError(Worksheet Function.AverageIf(Range(Cells(15, 2), Cells(19, 2)), "<>0"), "0") Тоже самое для суммы, формула работает, код VBA - нет... =ЕСЛИОШИБКА(СУММ(B15:B19);"???") Cells(20, 2) = WorksheetFunction.IfError(Worksheet Function.Sum(Range(Cells(15, 2), Cells(19, 2))), "???") |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 39
|
![]()
вышел из положения, используя On Error Resume Next
Но может, есть другой вариант?? On Error Resume Next Cells(20, 2) = WorksheetFunction.Sum(Range(Cells(1 5, 2), Cells(19, 2))) If (Cells(20, 2) = "") Then Cells(20, 2) = "???" End If Cells(21, 2) = WorksheetFunction.AverageIf(Range(C ells(15, 2), Cells(19, 2)), "<>0") If (Cells(21, 2) = "") Then Cells(21, 2) = "0" End If |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Sum + and - | Zorg 17 | Microsoft Office Excel | 5 | 27.01.2011 23:05 |
Проблема с запросом - Sum. | Baaandit | БД в Delphi | 4 | 30.05.2010 17:04 |
sum для разных id | shad0w | SQL, базы данных | 3 | 09.04.2010 01:26 |
SUM? | Uretz | Microsoft Office Access | 1 | 12.03.2010 13:43 |
Проблема с функцией SUM | Sneginka87 | БД в Delphi | 8 | 27.02.2010 02:34 |