Прописать формулы макросом.
Mark1976
Дата: Понедельник, 20.11.2017, 21:29 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
Всем доброго времени суток. Нужна помощь. Сможете прописать макросом формулы? Есть одно "но", в каждом файле разное кол-во строк. Формулы выделил желтым цветом. Может это можно сделать без макроса?
Всем доброго времени суток. Нужна помощь. Сможете прописать макросом формулы? Есть одно "но", в каждом файле разное кол-во строк. Формулы выделил желтым цветом. Может это можно сделать без макроса? Mark1976
Ответить
Сообщение Всем доброго времени суток. Нужна помощь. Сможете прописать макросом формулы? Есть одно "но", в каждом файле разное кол-во строк. Формулы выделил желтым цветом. Может это можно сделать без макроса? Автор - Mark1976 Дата добавления - 20.11.2017 в 21:29
_Boroda_
Дата: Понедельник, 20.11.2017, 21:38 |
Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Если снести суммы в другой столбец, то так можноКод
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))
итоговая тогда такКод
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))-СУММ(H1:ИНДЕКС(H:H;СЧЁТЗ(H:H)))
Если снести суммы в другой столбец, то так можноКод
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))
итоговая тогда такКод
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))-СУММ(H1:ИНДЕКС(H:H;СЧЁТЗ(H:H)))
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Если снести суммы в другой столбец, то так можноКод
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))
итоговая тогда такКод
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))-СУММ(H1:ИНДЕКС(H:H;СЧЁТЗ(H:H)))
Автор - _Boroda_ Дата добавления - 20.11.2017 в 21:38
Mark1976
Дата: Понедельник, 20.11.2017, 21:45 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Boroda_, спасибо. А вот как можно эти формулы автоматом посчитать , ?
_Boroda_, спасибо. А вот как можно эти формулы автоматом посчитать , ? Mark1976
Ответить
Сообщение _Boroda_, спасибо. А вот как можно эти формулы автоматом посчитать , ? Автор - Mark1976 Дата добавления - 20.11.2017 в 21:45
Mark1976
Дата: Понедельник, 20.11.2017, 21:48 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
У меня это не шаблон. G1:G6 это диапазон, в котором формулы приходиться считать руками.
У меня это не шаблон. G1:G6 это диапазон, в котором формулы приходиться считать руками. Mark1976
Ответить
Сообщение У меня это не шаблон. G1:G6 это диапазон, в котором формулы приходиться считать руками. Автор - Mark1976 Дата добавления - 20.11.2017 в 21:48
Mark1976
Дата: Понедельник, 20.11.2017, 21:50 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Boroda_, вот что я имею изначально. Файл приложил. Мне надо сделать, как файле в первом сообщении.
_Boroda_, вот что я имею изначально. Файл приложил. Мне надо сделать, как файле в первом сообщении. Mark1976
Ответить
Сообщение _Boroda_, вот что я имею изначально. Файл приложил. Мне надо сделать, как файле в первом сообщении. Автор - Mark1976 Дата добавления - 20.11.2017 в 21:50
_Boroda_
Дата: Понедельник, 20.11.2017, 21:51 |
Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
А, понял, это? Зеленая ячейкаКод
=СУММПРОИЗВ((C1:ИНДЕКС(C:C;СЧЁТЗ(B:B))-E1:ИНДЕКС(E:E;СЧЁТЗ(B:B)))*B1:ИНДЕКС(B:B;СЧЁТЗ(B:B)))
А, понял, это? Зеленая ячейкаКод
=СУММПРОИЗВ((C1:ИНДЕКС(C:C;СЧЁТЗ(B:B))-E1:ИНДЕКС(E:E;СЧЁТЗ(B:B)))*B1:ИНДЕКС(B:B;СЧЁТЗ(B:B)))
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение А, понял, это? Зеленая ячейкаКод
=СУММПРОИЗВ((C1:ИНДЕКС(C:C;СЧЁТЗ(B:B))-E1:ИНДЕКС(E:E;СЧЁТЗ(B:B)))*B1:ИНДЕКС(B:B;СЧЁТЗ(B:B)))
Автор - _Boroda_ Дата добавления - 20.11.2017 в 21:51
Mark1976
Дата: Понедельник, 20.11.2017, 21:55 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Boroda_, немного не так. Формулу , придется считать руками. И остальные формулы придется вставлять руками. Как можно это все вставить автоматом?
_Boroda_, немного не так. Формулу , придется считать руками. И остальные формулы придется вставлять руками. Как можно это все вставить автоматом? Mark1976
Ответить
Сообщение _Boroda_, немного не так. Формулу , придется считать руками. И остальные формулы придется вставлять руками. Как можно это все вставить автоматом? Автор - Mark1976 Дата добавления - 20.11.2017 в 21:55
_Igor_61
Дата: Понедельник, 20.11.2017, 21:59 |
Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация:
90
±
Замечаний:
0% ±
Excel 2007
Здравствуйте! Наверное, макросом
Здравствуйте! Наверное, макросом _Igor_61
Ответить
Сообщение Здравствуйте! Наверное, макросом Автор - _Igor_61 Дата добавления - 20.11.2017 в 21:59
RAN
Дата: Понедельник, 20.11.2017, 22:03 |
Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
_Igor_61 , может лучше так писать? [vba]Код
Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] и тянуть не надо.
_Igor_61 , может лучше так писать? [vba]Код
Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] и тянуть не надо.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение _Igor_61 , может лучше так писать? [vba]Код
Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] и тянуть не надо.Автор - RAN Дата добавления - 20.11.2017 в 22:03
_Igor_61
Дата: Понедельник, 20.11.2017, 22:06 |
Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация:
90
±
Замечаний:
0% ±
Excel 2007
Ну да, я просто про это не знал, что так можно, макрорекордер - мой учитель Спасибо, буду знать теперь! Хотя, блин, мог бы и сам догадаться!
Ну да, я просто про это не знал, что так можно, макрорекордер - мой учитель Спасибо, буду знать теперь! Хотя, блин, мог бы и сам догадаться! _Igor_61
Ответить
Сообщение Ну да, я просто про это не знал, что так можно, макрорекордер - мой учитель Спасибо, буду знать теперь! Хотя, блин, мог бы и сам догадаться! Автор - _Igor_61 Дата добавления - 20.11.2017 в 22:06
_Boroda_
Дата: Понедельник, 20.11.2017, 22:09 |
Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Как можно это все вставить автоматом?
Зачем? Я Вам сразу итоговую сумму посчитал. Зачем Вам промежуточные нужны?
Как можно это все вставить автоматом?
Зачем? Я Вам сразу итоговую сумму посчитал. Зачем Вам промежуточные нужны?_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Как можно это все вставить автоматом?
Зачем? Я Вам сразу итоговую сумму посчитал. Зачем Вам промежуточные нужны?Автор - _Boroda_ Дата добавления - 20.11.2017 в 22:09
Mark1976
Дата: Понедельник, 20.11.2017, 22:14 |
Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Boroda_, формулы руками не хочется прописывать. Я файлы сохраняю из сторойней программы (их у меня очень много), поэтому и формулы приходится каждый раз прописывать вручную. Вот и хотел автоматизировать.
_Boroda_, формулы руками не хочется прописывать. Я файлы сохраняю из сторойней программы (их у меня очень много), поэтому и формулы приходится каждый раз прописывать вручную. Вот и хотел автоматизировать. Mark1976
Ответить
Сообщение _Boroda_, формулы руками не хочется прописывать. Я файлы сохраняю из сторойней программы (их у меня очень много), поэтому и формулы приходится каждый раз прописывать вручную. Вот и хотел автоматизировать. Автор - Mark1976 Дата добавления - 20.11.2017 в 22:14
Mark1976
Дата: Понедельник, 20.11.2017, 22:15 |
Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Igor_61, макрос работает. Поправил строку.
_Igor_61, макрос работает. Поправил строку. Mark1976
Сообщение отредактировал Mark1976 - Понедельник, 20.11.2017, 22:18
Ответить
Сообщение _Igor_61, макрос работает. Поправил строку. Автор - Mark1976 Дата добавления - 20.11.2017 в 22:15
_Igor_61
Дата: Понедельник, 20.11.2017, 22:24 |
Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация:
90
±
Замечаний:
0% ±
Excel 2007
Если хотите, чтобы код был покороче, то кто же мешает? Поправьте (см. сообщение №10) Ну еще наверное можно добавить "ThisWorkbook" и листы, если сразу с несколькими открытыми файлами работаете, чтобы случайно макрос в другую не залез и не пересчитал там все
Если хотите, чтобы код был покороче, то кто же мешает? Поправьте (см. сообщение №10) Ну еще наверное можно добавить "ThisWorkbook" и листы, если сразу с несколькими открытыми файлами работаете, чтобы случайно макрос в другую не залез и не пересчитал там все _Igor_61
Ответить
Сообщение Если хотите, чтобы код был покороче, то кто же мешает? Поправьте (см. сообщение №10) Ну еще наверное можно добавить "ThisWorkbook" и листы, если сразу с несколькими открытыми файлами работаете, чтобы случайно макрос в другую не залез и не пересчитал там все Автор - _Igor_61 Дата добавления - 20.11.2017 в 22:24
Mark1976
Дата: Понедельник, 20.11.2017, 22:27 |
Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Igor_61, Вот так заменил. Главное, что работает. [vba]Код
Sub Формулы() Dim lCount As Long lCount = Cells(Rows.Count, 1).End(xlUp).Row Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]" Range("G1").AutoFill Destination:=Range("G1:G" & lCount), Type:=xlFillDefault Range("H1").FormulaR1C1 = "=RC[-3]*RC[-6]" Range("H1").AutoFill Destination:=Range("H1:H" & lCount), Type:=xlFillDefault Cells(lCount + 1, 7).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 8).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]" End Sub
[/vba]
_Igor_61, Вот так заменил. Главное, что работает. [vba]Код
Sub Формулы() Dim lCount As Long lCount = Cells(Rows.Count, 1).End(xlUp).Row Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]" Range("G1").AutoFill Destination:=Range("G1:G" & lCount), Type:=xlFillDefault Range("H1").FormulaR1C1 = "=RC[-3]*RC[-6]" Range("H1").AutoFill Destination:=Range("H1:H" & lCount), Type:=xlFillDefault Cells(lCount + 1, 7).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 8).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]" End Sub
[/vba] Mark1976
Сообщение отредактировал Mark1976 - Понедельник, 20.11.2017, 22:28
Ответить
Сообщение _Igor_61, Вот так заменил. Главное, что работает. [vba]Код
Sub Формулы() Dim lCount As Long lCount = Cells(Rows.Count, 1).End(xlUp).Row Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]" Range("G1").AutoFill Destination:=Range("G1:G" & lCount), Type:=xlFillDefault Range("H1").FormulaR1C1 = "=RC[-3]*RC[-6]" Range("H1").AutoFill Destination:=Range("H1:H" & lCount), Type:=xlFillDefault Cells(lCount + 1, 7).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 8).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]" End Sub
[/vba] Автор - Mark1976 Дата добавления - 20.11.2017 в 22:27
Mark1976
Дата: Понедельник, 20.11.2017, 22:36 |
Сообщение № 16
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Igor_61, на одной строчке вылетает (если всего 1 строка)
_Igor_61, на одной строчке вылетает (если всего 1 строка) Mark1976
Ответить
Сообщение _Igor_61, на одной строчке вылетает (если всего 1 строка) Автор - Mark1976 Дата добавления - 20.11.2017 в 22:36
RAN
Дата: Понедельник, 20.11.2017, 22:36 |
Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
[vba]Код
Sub Формулы() Dim lCount As Long lCount = Cells(Rows.Count, 1).End(xlUp).Row Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]" Range("H1:H" & lCount").FormulaR1C1 = "=RC[-3]*RC[-6]" Cells(lCount + 1, 7)Resize(,2).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]" End Sub
[/vba]
[vba]Код
Sub Формулы() Dim lCount As Long lCount = Cells(Rows.Count, 1).End(xlUp).Row Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]" Range("H1:H" & lCount").FormulaR1C1 = "=RC[-3]*RC[-6]" Cells(lCount + 1, 7)Resize(,2).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]" End Sub
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [vba]Код
Sub Формулы() Dim lCount As Long lCount = Cells(Rows.Count, 1).End(xlUp).Row Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]" Range("H1:H" & lCount").FormulaR1C1 = "=RC[-3]*RC[-6]" Cells(lCount + 1, 7)Resize(,2).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]" End Sub
[/vba] Автор - RAN Дата добавления - 20.11.2017 в 22:36
Mark1976
Дата: Понедельник, 20.11.2017, 22:42 |
Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
RAN, Syntax eror, при выполнении макроса.
RAN, Syntax eror, при выполнении макроса. Mark1976
Ответить
Сообщение RAN, Syntax eror, при выполнении макроса. Автор - Mark1976 Дата добавления - 20.11.2017 в 22:42
_Igor_61
Дата: Понедельник, 20.11.2017, 22:58 |
Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация:
90
±
Замечаний:
0% ±
Excel 2007
У меня работает с одной строкой
Ответить
Сообщение У меня работает с одной строкой Автор - _Igor_61 Дата добавления - 20.11.2017 в 22:58
Mark1976
Дата: Понедельник, 20.11.2017, 23:06 |
Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Igor_61, после этого [vba]Код
'Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] работает. Спасибо.
_Igor_61, после этого [vba]Код
'Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] работает. Спасибо. Mark1976
Ответить
Сообщение _Igor_61, после этого [vba]Код
'Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] работает. Спасибо. Автор - Mark1976 Дата добавления - 20.11.2017 в 23:06