Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Макрос выполняющий формулы

Автор baters, 20.05.2011, 23:24:35

« назад - далее »

baters

Range("E3:E" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C11)"
    Range("F3:F" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C12)"
    Range("G3:G" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C13)"
    Range("H3:H" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C14)"
    Range("I3:I" & lLastRow).FormulaR1C1 = "=RC7-RC5"
    Range("J3:J" & lLastRow).FormulaR1C1 = "=RC8-RC6"
    Range("M3:M" & lLastRow).FormulaR1C1 = "=SUMIF(Лист2!C4,RC1,Лист2!C17)"
    Range("N3:N" & lLastRow).FormulaR1C1 = "=SUMIF(Лист2!C4,RC1,Лист2!C18)"
    Range("P3:P" & lLastRow).FormulaR1C1 = "=RC9+RC13"
    Range("Q3:Q" & lLastRow).FormulaR1C1 = "=RC10+RC14"
    Range("E3:Q" & lLastRow).Value = Range("E3:Q" & lLastRow).Value
    Range("A3:Q" & lLastRow).Sort Range("B3"), xlAscending
    ActiveSheet.Range("$A$1:$Q" & lLastRow).AutoFilter Field:=16, Criteria1:="<>0", Operator:=xlAnd
    Application.ScreenUpdating = 1
End Sub


Добрый вечер. Написал я макрос....вернее часть макроса (нижнюю), если быть точным мои только название столбцов и листов.....
Не могу написать к этому макросу шапку (то есть его верхнюю часть)...пробовал записывать формулы при записи макроса (что бы скопировать шапку) ни чего не выходит...   Смысл макроса - просто выполнять прописанные формулы.

помогите завершить макрос :(

Serge 007

Цитата: baters от 20.05.2011, 23:24:35
Смысл макроса - просто выполнять прописанные формулы.
А так не пойдёт?
Sub baters()
    Calculate
End Sub


Дмитрий Щербаков(The_Prist)

Плохо помогать, не зная откуда шапку копировать :-)
Вот небольшой примерчик - данная строка впишет в ячейки А1:С1 названия столбцов(А, В, С)
Range("A1:C1").Value = Array("A", "B", "C")
Кол-во столбцов и кол-во записей в Array должно быть одинаковое.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

baters

Цитата: Serge 007 от 21.05.2011, 00:16:54
Цитата: baters от 20.05.2011, 23:24:35
Смысл макроса - просто выполнять прописанные формулы.
А так не пойдёт?
Sub baters()
    Calculate
End Sub


1004 ошибку пишетпосле первой формулы.

Дмитрий Щербаков(The_Prist)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

baters

Цитата: The_Prist от 21.05.2011, 09:17:17
Плохо помогать, не зная откуда шапку копировать :-)
Вот небольшой примерчик - данная строка впишет в ячейки А1:С1 названия столбцов(А, В, С)
Range("A1:C1").Value = Array("A", "B", "C")
Кол-во столбцов и кол-во записей в Array должно быть одинаковое.

не соображу какая связь .... между этой формулой и теми что в макросе .... "Array" у меня в макросе нету :(

baters

Цитата: The_Prist от 21.05.2011, 14:58:11
Application.Calculate
все равно после первой строки с формулой 1004 ошибка (глобал файлед)

Дмитрий Щербаков(The_Prist)

baters, Вы ведь вообще ничего не понимаете в макросах. Так научитесь тогда яснее выражать мысли. Вы написали: "Не могу написать к этому макросу шапку". Тогда уж опишите, что это за шапка такая, которую написать не можете. В моем понятии шапка - это заголовки таблицы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

baters

ну не то что прямо совсем в макросах не понимаю.....начало и конец макроса я могу определить....некоторые операции в макросе могу понять (если на против них стоит комментарий на русском).
Шапка в моем понимании это верхушка макроса вставив которую макрос сработает.

Дмитрий Щербаков(The_Prist)

И это Вы считаете, что понимаете в макросах? Первое, что необходимо знать, это как оформить процедуру. Советую скачать с сайта хоть одну книжку и начать читать. Иначе дольше будете вот такие вот вопросы разбирать на форумах.

Любая процедура начинается с ключевого слова - Sub. Далее идет имя самой процедуры - буквы, цифры и нижнее подчеркивание. Никаких знаков препинания и пробелов. Не должна начинаться с цифры. Завершается все это скобками.
Что-то типа - Sub Baters_Macro1()

Вы бы посмотрели на уже имеющиеся макросы и провели аналогию.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

baters

Я проводил аналогию и шапку всавлял, потом нажимал F8 и было видно, что к шапке у макроса претензий нет, и к первой строке с формулой не, а вот ко второй есть. Из чего я сделал вывод, что необходима хитрая строка перед формулами, что бы макрос отрабаывал все формулы подряд.

Дмитрий Щербаков(The_Prist)

Ну вот смотрите. Вы видите, что за ошибки у Вас лезут и на какой строке. нам приводите не весь свой код. И хотите, чтобы Вам помогли? Это возможно? Мы не видим, какие ошибки у Вас появляются и на какой конкретно строке.
Кстати, у Вас в этой строке: Range("E3:E" & lLastRow) Е не на русском, случаем, написана? Надо английскими записывать...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

baters

    Sub baters()   
    Application.Calculate 
    Range("E3:E" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C11)"
    Range("F3:F" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C12)"
    Range("G3:G" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C13)"
    Range("H3:H" & lLastRow).FormulaR1C1 = "=SUMIF(Лист1!C4,RC1,Лист1!C14)"
    Range("I3:I" & lLastRow).FormulaR1C1 = "=RC7-RC5"
    Range("J3:J" & lLastRow).FormulaR1C1 = "=RC8-RC6"
    Range("M3:M" & lLastRow).FormulaR1C1 = "=SUMIF(Лист2!C4,RC1,Лист2!C17)"
    Range("N3:N" & lLastRow).FormulaR1C1 = "=SUMIF(Лист2!C4,RC1,Лист2!C18)"
    Range("P3:P" & lLastRow).FormulaR1C1 = "=RC9+RC13"
    Range("Q3:Q" & lLastRow).FormulaR1C1 = "=RC10+RC14"
    Range("E3:Q" & lLastRow).Value = Range("E3:Q" & lLastRow).Value
    Range("A3:Q" & lLastRow).Sort Range("B3"), xlAscending
    ActiveSheet.Range("$A$1:$Q" & lLastRow).AutoFilter Field:=16, Criteria1:="<>0", Operator:=xlAnd
    Application.ScreenUpdating = 1
End Sub

baters

Даже строки с формулами местами поменял....все равно только первую строку с формулой читает а потом 1004 ошибка

Дмитрий Щербаков(The_Prist)

Ну вот теперь все понятно. Посмотрите, чему равно значение переменной - lLastRow? Правильно - НУЛЮ. Потому что Вы не задали ей значение. Посмотрите повнимательнее код, откуда все это взяли и найдете, где и как задается значение переменной.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Яндекс.Метрика Рейтинг@Mail.ru