powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как передать параметр в ActiveCell.FormulaR1C1
10 сообщений из 10, страница 1 из 1
Как передать параметр в ActiveCell.FormulaR1C1
    #35952868
lenysik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем! Подскажите, пожалуйста, как подставить параметр в формулу?

Это СУММПРОИЗВ

ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((RC[-7]=Лист1!R[-1]C[-9]:R[700]C[-9])*(RC[-9]=Лист1!R[-1]C[-8]:R[700]C[-8])*Лист1!R[-1]C[-7]:R[700]C[-7])"


из Листа1 подтягиваются значения на текущий лист по 2 условиям.
Мне надо это делать в макросе и подставлять значения в формулу, то есть диапазон R[700] меняется!
Допустим это параметр z, который вычислен ранее.
Если подставлять напрямую
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((RC[-7]=Лист1!R[-1]C[-9]:R[700]C[-9])*(RC[-9]=Лист1!R[-1]C[-8]:R["&z&" ]C[-8])*Лист1!R[-1]C[-7]:R["&z&" ]C[-7])"
то так не работает

Подскажите, пожалуйста!!!
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35955033
Infinity Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lenysik,

А у вас переменная z типа string или не string? ;)
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35955469
lenysik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Infinity Creator,

В переменной хочу передать кол-во строк, там же диапазон надо указать
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35958556
Таранага
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А так:
ActiveCell.FormulaArray = _
"=SUMPRODUCT((RC[-7]=Лист1!R[-1]C[-9]:R[700]C[-9])*(RC[-9]=Лист1!R[-1]C[-8]:R["&z&" ]C[-8])*Лист1!R[-1]C[-7]:R["&z&" ]C[-7])"
Работает?
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35972513
lenysik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаранагаА так:
ActiveCell.FormulaArray = _
"=SUMPRODUCT((RC[-7]=Лист1!R[-1]C[-9]:R["&z&"]C[-9])*(RC[-9]=Лист1!R[-1]C[-8]:R["&z&" ]C[-8])*Лист1!R[-1]C[-7]:R["&z&" ]C[-7])"
Работает?

Да, спасибо, так работает, только еще столкнулась с проблемой, не знаю как зафиксировать диапазон, чтобы продлить на другие ячейки, т.е. надо чтобы получилось такое
=СУММПРОИЗВ((D2=ТВП!$B$1:$B$704)*(B2=ТВП!$C$1:$C$704)*ТВП!$D$1:$D$704)
Как в этом виде зафиксировать при продлении диапазон?

ActiveCell.FormulaArray = _
"=SUMPRODUCT((RC[-7]=Лист1!R[-1]C[-9]:R["&z&"]C[-9])*(RC[-9]=Лист1!R[-1]C[-8]:R["&z&" ]C[-8])*Лист1!R[-1]C[-7]:R["&z&" ]C[-7])"
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35972535
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишем эту формулу в листе ексель.
затем: сервис - параметры - общие - стиль ссылокR1C1 = True
и, о чудо! видем надпись в нужном формате в искомой ячейке.
Просто копируем ее в ВБА.
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35972640
lenysik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Taranaga,
Я не это имела ввиду.
Когда вот таким способом продлеваю эту формулу на другие ячейки
Range("K2").Select
Selection.AutoFill Destination:=Range("K2:K" & kkf & ""), Type:=xlFillDefault
Range("K2:K" & kkf & "").Select

Если первая строка с правильным диапазоном
=СУММПРОИЗВ((D2=ТВП!B1:B704)*(B2=ТВП!C1:C704)*ТВП!D1:D704)
то вторая уже нет
=СУММПРОИЗВ((D3=ТВП!B2:B705)*(B3=ТВП!C2:C705)*ТВП!D2:D705)

Как этого избежать?
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35972866
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Ваша формула:
"=SUMPRODUCT((RC[-7]=Лист1!R[-1]C[-9]:R["&z&"]C[-9])*(RC[-9]=Лист1!R[-1]C[-8]:R["&z&" ]C[-8])*Лист1!R[-1]C[-7]:R["&z&" ]C[-7])"
не является аналогом формулы:
=СУММПРОИЗВ((D2=ТВП!$B$1:$B$704)*(B2=ТВП!$C$1:$C$704)*ТВП!$D$1:$D$704)

Наверное нужно просто переписать формулу...
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35972879
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так вроде пашет:
"=SUMPRODUCT((R[-7]C[-1]=ТВП!R1C2:R" & z & "C2)*(R[-7]C[-3]=ТВП!R1C3:R" & z & "C3)*ТВП!R1C4:R" & z & "C4)"
...
Рейтинг: 0 / 0
Как передать параметр в ActiveCell.FormulaR1C1
    #35973449
lenysik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Taranaga,

Спасибо, очень помогло :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как передать параметр в ActiveCell.FormulaR1C1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]