Страницы: 1
RSS
SUMIF через VBA - нужен пример реализации
 
Господа,    
Торможу, как через VBA прописать СУММЕСЛИ.  
 
Я понимаю, что это будет application.WorksheetFunction.sumif  
Не могу сообразить, как это дальше реализовать, чтобы суммировалось по инвойсам.    
Если через функцию excel, то все понятно: =СУММЕСЛИ(A:B;A2;B:B). А вот как эти диапазоны и переменные в VBA выразить?    
Вставлять в процедуру формулу R1C1 не хочется, пересчет на листе долгий будет....  
 
A        B  
Инвойс Сумма  
1 14.23  
1 24.9  
1 21.34  
1 24.9  
2 80.66  
2 1.86  
2 9.28  
2 6.5  
3 9.28  
3 9.28  
3 2.79
 
{quote}{login=олд}{date=03.11.2009 12:08}{thema=SUMIF через VBA - нужен пример реализации}{post}Господа,    
Торможу, как через VBA прописать СУММЕСЛИ.  
 
Я понимаю, что это будет application.WorksheetFunction.sumif  
Не могу сообразить, как это дальше реализовать, чтобы суммировалось по инвойсам.    
Если через функцию excel, то все понятно: =СУММЕСЛИ(A:B;A2;B:B). А вот как эти диапазоны и переменные в VBA выразить?    
Вставлять в процедуру формулу R1C1 не хочется, пересчет на листе долгий будет....  
 
A        B  
Инвойс Сумма  
1 14.23  
1 24.9  
1 21.34  
1 24.9  
2 80.66  
2 1.86  
2 9.28  
2 6.5  
3 9.28  
3 9.28  
3 2.79{/post}{/quote}  
 
непонятно, а зачем VBA
 
:-)    
Решение этого вопроса через VBA - это лишь часть длинной VBA процедуры обработки данных.    
Просто на одном этапе необходимо получить данные через SUMIF. Конечно, можно вписать и через FormulaR1C1 = "=SUMIF(C[-3]:C[-2],RC[-3],C[-2])", но тогда в ячейку будет попадать формула, а не ее результат, а так как данных много, не хотелось бы тормозить пересчет ячеек еще одной формулой.
 
намного быстрее использовать формулы, чем vba, а данные формул потом можно сохранить как значения
 
{quote}{login=Артем}{date=03.11.2009 03:53}{thema=}{post}намного быстрее использовать формулы, чем vba, а данные формул потом можно сохранить как значения{/post}{/quote}  
"Не все йогурты одинаково полезны" :-) Так и с формулами vs VBA.
 
всем привет  
 
{quote}{login=}{date=03.11.2009 12:16}{thema=}{post}... можно вписать и через FormulaR1C1 = "=SUMIF(C[-3]:C[-2],RC[-3],C[-2])", но тогда в ячейку будет попадать формула, а не ее результат, ...{/post}{/quote}
 
тему создавать не стал.  
 
подскажите ответ
 
Ответ дал The_Prist. См. выше.
 
Юрий М, у меня формулы другие  
примерно такого вида    
=if(rc[-1]="""",0,vlookup(rc[-1],price_sloznost_visota,2,0))
подскажите как это записать
 
Тема вообще-то несколько иная... Я не очень понял Ваш вопрос, но попробуйте включить макрорекордер и ввести нужную формулу.
 
Юрий М, нужную информацию нашел тут http://programmersforum.ru/showthread.php?t=45410 дальше буду делать своей головой Спасибо за участие.
Страницы: 1
Читают тему
Наверх