Страницы: 1
RSS
как сделать макрос пограмотнее
 
Добрый вечер! Помогите ещё раз, пожалуйста!    
Вот такой у меня получился, макрос. Я уверена, можно было сделать компактнее.  
Сначала я хотела воспользоваться формулами суммесли и счётесли, но не знаю как в критериях ставить переменные.    
Спасибо
 
Макроса нет. Есть сводная. И загляните в "Приемы" - Ctrl+F на странице и ищем "секретное оружие"...  
Z.
 
{quote}{login=Z}{date=15.03.2010 07:30}{thema=}{post}Макроса нет.  
Z.{/post}{/quote}  
 
Ой простите, не тот файл загрузила
 
Ира, извините, что ввел в заблуждение: "Макроса нет" - это от меня нет ни макроса, ни правки вашего. Посчитал, что такая задача вполне под силу сводной или "=суммпроизв...".  
Z.
 
{quote}{login=Z}{date=15.03.2010 07:50}{thema=}{post}Посчитал, что такая задача вполне под силу сводной или "=суммпроизв...".  
Z.{/post}{/quote}  
 
Было бы можно, только наперёд не известно сколько будет подразделений, а уж тем более видов работ (их до 1000)  
Что-то мегафон глючит, видимо, работы на линии
 
Было бы можно, только наперёд не известно сколько будет подразделений, а уж тем более видов работ (их до 1000)  
 
 
 
А сводной это всё-равно :-)
 
{quote}{login=Serge 007}{date=15.03.2010 08:19}{thema=}{post}А сводной это всё-равно :-){/post}{/quote}  
 
Это не разовая отчётность, а ежесуточная. И выполнять её буду не я, пользователи. Подскажите, как в формулу суммесли в критерии вставить переменную, а?
 
Здравствуйте Ира,  
 
Что сразу бросилось в глаза - вы забываете точку в конструкции With - End With:  
Конструкция With - End With - это как вынесение общего знаменателя за скобку, только общим знаменателем здесь является часто повторяющаяся конструкция (родительский объект). К примеру у Вас    
With ThisWorkbook.Worksheets("Лист").Columns("A")    
и внутри все обращения к ячейкам не принадлежащим колонке "А". Правильнее будет    
 
With ThisWorkbook.Worksheets("Лист1")  
   ilastrow = .Cells(.Rows.Count, 1).End(xlUp).Row  
   ...  
End With  
Обратите внимание на точки - они указывают на принадлежность объекту объявленному оператором With (вложенность в скобки).
 
Потому что неправльно записана. Нужно примерно так:  
 
.Cells(n, 8).FormulaLocal = "=СУММЕСЛИ(""c:c"";""" & &vidr & """;""d:d"")"
 
{quote}{login=VovaK}{date=16.03.2010 07:04}{thema=Cells(n, 8) = "=SUMIF(c:c,&vidr,d:d)" ' Почему не работает?}{post}Потому что неправльно записана. Нужно примерно так:  
 
.Cells(n, 8).FormulaLocal = "=СУММЕСЛИ(""c:c"";""" & &vidr & """;""d:d"")"{/post}{/quote}  
 
 
Спасибо.  
А два условия можно задать?
 
В 2007 функция СУММЕСЛИМН, в 2003 проще всего создать дополнительный столбец и сложить критерии (условия) с помощью оператора &. Тогда критериев (условий) может быть сколько в ячейку поместится.
 
"А два условия можно задать?" <BR>Уже предлагал, вверху приглашение "Скачать пример", см.- http://www.planetaexcel.ru/tip.php?aid=94 <BR>Z.
 
{quote}{login=VovaK}{date=16.03.2010 07:04}{thema=Cells(n, 8) = "=SUMIF(c:c,&vidr,d:d)" ' Почему не работает?}{post}Потому что неправльно записана. Нужно примерно так:  
 
.Cells(n, 8).FormulaLocal = "=СУММЕСЛИ(""c:c"";""" & &vidr & """;""d:d"")"{/post}{/quote}  
 
Не работает
 
Ню? Поможите, кто может! Мне ещё там надо выводить итоги по вертикали и горизонтали. По горизонтали вывела, а по вертикали вот бьюсь, не выходит
 
Вам в "шашечку" или ехать?.. См. вложения. Сводная была ранее.  
Z.
 
Формулой-то я могу, а в макросе это как описать? Если у меня наперёд неизвестно сколько будет колонок и строк
 
Пользуйтесь окном Watch для просмотра результата при отладке.
Страницы: 1
Читают тему
Наверх