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

Вход

Регистрация

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

 

= Мир MS Excel/Передача диапазона ячеек в формулу суммирования - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Передача диапазона ячеек в формулу суммирования (Макросы/Sub)
Передача диапазона ячеек в формулу суммирования
Teliot Дата: Вторник, 09.10.2018, 10:39 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день.
Имею такую проблему. Несколько таблиц с данными, необходимо просуммировать построчно значения столбцов (СТ), записать значение в последний столбец (Общее) кол-во столбцов (СТ) и строк может меняться, поэтому решил использовать выбор диапазона и вставку формулы суммирования, но протянуть формулы ниже не удается, встает значение первого диапазона.
[vba]
Код
Sub тестформул()
Dim r As Range
Set r = Application.InputBox("Выбор ячеек", "Запрос данных", "", Type:=8)
ActiveCell.Formula = Replace("=sum(X)", "X", r.Address)
End Sub

[/vba]
К сообщению приложен файл: DIA.xlsm(15.0 Kb)
 
Ответить
СообщениеДобрый день.
Имею такую проблему. Несколько таблиц с данными, необходимо просуммировать построчно значения столбцов (СТ), записать значение в последний столбец (Общее) кол-во столбцов (СТ) и строк может меняться, поэтому решил использовать выбор диапазона и вставку формулы суммирования, но протянуть формулы ниже не удается, встает значение первого диапазона.
[vba]
Код
Sub тестформул()
Dim r As Range
Set r = Application.InputBox("Выбор ячеек", "Запрос данных", "", Type:=8)
ActiveCell.Formula = Replace("=sum(X)", "X", r.Address)
End Sub

[/vba]

Автор - Teliot
Дата добавления - 09.10.2018 в 10:39
sboy Дата: Вторник, 09.10.2018, 10:43 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2198
Репутация: 624 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Вы адрес передаете абсолютный.
Вот так для относительного
[vba]
Код
Sub тестформул()
Dim r As Range
Set r = Application.InputBox("Выбор ячеек", "Запрос данных", "", Type:=8)
ActiveCell.Formula = Replace("=sum(X)", "X", r.Address(0, 0))
End Sub
[/vba]
 
Ответить
СообщениеДобрый день.
Вы адрес передаете абсолютный.
Вот так для относительного
[vba]
Код
Sub тестформул()
Dim r As Range
Set r = Application.InputBox("Выбор ячеек", "Запрос данных", "", Type:=8)
ActiveCell.Formula = Replace("=sum(X)", "X", r.Address(0, 0))
End Sub
[/vba]

Автор - sboy
Дата добавления - 09.10.2018 в 10:43
Teliot Дата: Вторник, 09.10.2018, 10:52 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо большое, все верно!!!
 
Ответить
СообщениеСпасибо большое, все верно!!!

Автор - Teliot
Дата добавления - 09.10.2018 в 10:52
_Boroda_ Дата: Вторник, 09.10.2018, 10:56 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13514
Репутация: 5529 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Чтобы не протягивать, можно макросом заполнять все ("все" определяются по заполненности столбца А)
Запускать макрос можно, находясь в любой ячейке
[vba]
Код
Sub тестформул()
    Dim d As Range
    r0_ = 2
    r1_ = Cells(Rows.Count, 1).End(3).Row
    Set d = Application.InputBox("Выбор ячеек для ОДНОЙ!!! формулы", "Запрос данных", "", Type:=8)
    With d
        Cells(r0_, .Column + .Count).Resize(r1_ - r0_ + 1).Formula = "=sum(" & .Address(0, 0) & ")"
    End With
End Sub
[/vba]
К сообщению приложен файл: DIA_1.xlsm(17.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧтобы не протягивать, можно макросом заполнять все ("все" определяются по заполненности столбца А)
Запускать макрос можно, находясь в любой ячейке
[vba]
Код
Sub тестформул()
    Dim d As Range
    r0_ = 2
    r1_ = Cells(Rows.Count, 1).End(3).Row
    Set d = Application.InputBox("Выбор ячеек для ОДНОЙ!!! формулы", "Запрос данных", "", Type:=8)
    With d
        Cells(r0_, .Column + .Count).Resize(r1_ - r0_ + 1).Formula = "=sum(" & .Address(0, 0) & ")"
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 09.10.2018 в 10:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Передача диапазона ячеек в формулу суммирования (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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