Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сумма по колонке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сумма по колонке (Макросы/Sub)
Сумма по колонке
MarinaSergeevna Дата: Пятница, 01.08.2014, 11:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Надо найти сумму по колонке по нажатию кнопки, но проблема в том,что размер колонки будет известен только перед нажатием. Т.е. может быть 10 или 15 ячеек. Пробовала

[vba]
Код
ActiveCell.FormulaR1C1 = "=SUM(R[-18]C:R[-2]C)"
[/vba]

но проблема в том,что конечная ячейка определяется от активной,а начальная всегда постоянна. Пробовала задать как I8, но сами понимаете такой вариант не прокатывает. Что можно сделать?
К сообщению приложен файл: _3_.xlsm (23.7 Kb)


Сообщение отредактировал MarinaSergeevna - Пятница, 01.08.2014, 16:09
 
Ответить
СообщениеНадо найти сумму по колонке по нажатию кнопки, но проблема в том,что размер колонки будет известен только перед нажатием. Т.е. может быть 10 или 15 ячеек. Пробовала

[vba]
Код
ActiveCell.FormulaR1C1 = "=SUM(R[-18]C:R[-2]C)"
[/vba]

но проблема в том,что конечная ячейка определяется от активной,а начальная всегда постоянна. Пробовала задать как I8, но сами понимаете такой вариант не прокатывает. Что можно сделать?

Автор - MarinaSergeevna
Дата добавления - 01.08.2014 в 11:13
Rioran Дата: Пятница, 01.08.2014, 11:55 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
MarinaSergeevna, здравствуйте.

Вводите переменную, которая посчитает количество строк в колонке. И эту переменную уже прописывайте в формуле.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеMarinaSergeevna, здравствуйте.

Вводите переменную, которая посчитает количество строк в колонке. И эту переменную уже прописывайте в формуле.

Автор - Rioran
Дата добавления - 01.08.2014 в 11:55
MarinaSergeevna Дата: Пятница, 01.08.2014, 13:00 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Где прописывать? и как в этом случае тогда формулу записать?
 
Ответить
СообщениеГде прописывать? и как в этом случае тогда формулу записать?

Автор - MarinaSergeevna
Дата добавления - 01.08.2014 в 13:00
Rioran Дата: Пятница, 01.08.2014, 14:14 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
MarinaSergeevna, Вам нужно будет задать поисковику два вопроса:

1). Как вводить переменные?
2). Как посчитать количество строк?

А в формуле Вы то, что в кавычках, режете на куски с помощью знака & и где надо вставляете переменную:

[vba]
Код
ActiveCell.FormulaR1C1 = "Кусок1" & ВашаПеременная & "Кусок2"
[/vba]


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 01.08.2014, 14:15
 
Ответить
СообщениеMarinaSergeevna, Вам нужно будет задать поисковику два вопроса:

1). Как вводить переменные?
2). Как посчитать количество строк?

А в формуле Вы то, что в кавычках, режете на куски с помощью знака & и где надо вставляете переменную:

[vba]
Код
ActiveCell.FormulaR1C1 = "Кусок1" & ВашаПеременная & "Кусок2"
[/vba]

Автор - Rioran
Дата добавления - 01.08.2014 в 14:14
MarinaSergeevna Дата: Пятница, 01.08.2014, 15:46 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
сделала как поняла,в итоге ошибка...что не так?

[vba]
Код
Formula = "=I8"
MsgBox Application.ConvertFormula( _
Formula:=Formula, _
fromReferenceStyle:=xlA1, _
toReferenceStyle:=xlR1C1)
Formula = Application.ConvertFormula( _
Formula:=Formula, _
fromReferenceStyle:=xlA1, _
toReferenceStyle:=xlR1C1)
[/vba]
ActiveCell.FormulaR1C1 = "=SUM(" & Formula & ":R[-2]C)"


Сообщение отредактировал MarinaSergeevna - Пятница, 01.08.2014, 16:09
 
Ответить
Сообщениесделала как поняла,в итоге ошибка...что не так?

[vba]
Код
Formula = "=I8"
MsgBox Application.ConvertFormula( _
Formula:=Formula, _
fromReferenceStyle:=xlA1, _
toReferenceStyle:=xlR1C1)
Formula = Application.ConvertFormula( _
Formula:=Formula, _
fromReferenceStyle:=xlA1, _
toReferenceStyle:=xlR1C1)
[/vba]
ActiveCell.FormulaR1C1 = "=SUM(" & Formula & ":R[-2]C)"

Автор - MarinaSergeevna
Дата добавления - 01.08.2014 в 15:46
Rioran Дата: Пятница, 01.08.2014, 15:59 | Сообщение № 6
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
MarinaSergeevna, а какие ячейки на каком листе Вы выделяете перед использованием макроса? Какую именно ошибку Вам выдаёт и в какой момент? Что должна считать переменная "Formula"? И интересно, кто спонсировал Вас столь... э... неординарными VBA методами. Впрочем, последний вопрос не так важен.

Если Вам нужно регулировать количество строк в формуле, то правильное "сшивание" больше будет похоже на следующее:

[vba]
Код
ActiveCell.FormulaR1C1 = "=SUM(R[-" & Formula & "]C:R[-2]C)"
[/vba]
То есть переменной замещаем цифру 18, а остальное обязательно на своих местах.

Просьба в соответствии с правилами форума оформить все Ваши VBA-коды тегами. При редактировании сообщения выделяете строки с кодом и жмёте # на панели редактирования.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 01.08.2014, 16:01
 
Ответить
СообщениеMarinaSergeevna, а какие ячейки на каком листе Вы выделяете перед использованием макроса? Какую именно ошибку Вам выдаёт и в какой момент? Что должна считать переменная "Formula"? И интересно, кто спонсировал Вас столь... э... неординарными VBA методами. Впрочем, последний вопрос не так важен.

Если Вам нужно регулировать количество строк в формуле, то правильное "сшивание" больше будет похоже на следующее:

[vba]
Код
ActiveCell.FormulaR1C1 = "=SUM(R[-" & Formula & "]C:R[-2]C)"
[/vba]
То есть переменной замещаем цифру 18, а остальное обязательно на своих местах.

Просьба в соответствии с правилами форума оформить все Ваши VBA-коды тегами. При редактировании сообщения выделяете строки с кодом и жмёте # на панели редактирования.

Автор - Rioran
Дата добавления - 01.08.2014 в 15:59
MarinaSergeevna Дата: Пятница, 01.08.2014, 16:10 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
не цифра 18, а ячейка I8. Мне надо посчитать сумму от этой ячейки до активной. В столбик)
 
Ответить
Сообщениене цифра 18, а ячейка I8. Мне надо посчитать сумму от этой ячейки до активной. В столбик)

Автор - MarinaSergeevna
Дата добавления - 01.08.2014 в 16:10
Rioran Дата: Пятница, 01.08.2014, 16:46 | Сообщение № 8
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Вот Вам два решения.

Первое посчитает сумму без формул:

[vba]
Код
Sub Magic_Value()

Dim X As Double 'Для суммирования
Dim Z As Long 'Для перебора строк для рассчёта

For Z = 8 To ActiveCell.Row
       X = X + Cells(Z, 9).Value
Next Z

ActiveCell.Value = X

End Sub
[/vba]
Второй вписывает формулу в активную ячейку:

[vba]
Код
Sub Magic_Formula()

ActiveCell.FormulaR1C1 = "=SUM(R8C9:R" & (ActiveCell.Row - 1) & "C9)"

End Sub
[/vba]
Речь, разумеется, о втором листе.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 01.08.2014, 16:48
 
Ответить
СообщениеВот Вам два решения.

Первое посчитает сумму без формул:

[vba]
Код
Sub Magic_Value()

Dim X As Double 'Для суммирования
Dim Z As Long 'Для перебора строк для рассчёта

For Z = 8 To ActiveCell.Row
       X = X + Cells(Z, 9).Value
Next Z

ActiveCell.Value = X

End Sub
[/vba]
Второй вписывает формулу в активную ячейку:

[vba]
Код
Sub Magic_Formula()

ActiveCell.FormulaR1C1 = "=SUM(R8C9:R" & (ActiveCell.Row - 1) & "C9)"

End Sub
[/vba]
Речь, разумеется, о втором листе.

Автор - Rioran
Дата добавления - 01.08.2014 в 16:46
MarinaSergeevna Дата: Пятница, 01.08.2014, 16:49 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
спасибо,вторая работает,первую не проверяла :)
 
Ответить
Сообщениеспасибо,вторая работает,первую не проверяла :)

Автор - MarinaSergeevna
Дата добавления - 01.08.2014 в 16:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сумма по колонке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!