Страницы: 1
RSS
Конвертировать формулу в VBA выражение
 
Добрый день.
Код
    With Application.WorksheetFunction
'    =SUMPRODUCT(MAX(("2017/18"=R3)*(COLUMN(R3))))
      Debug.Print .SumProduct(.Max(("2017/18" = R3) * (.Column(R3))))
    End With
Помогите конвертировать Excel формулу =SUMPRODUCT(MAX(("2017/18"=R3)*(COLUMN(R3)))) в VBA выражение, что-то у меня не получается?

P.S. пример кода не работает
 
измените тему
и в
Код
Application.WorksheetFunction
нет SumProduct
уберите для начала точку перед ней
 
Что значит в Application.WorkSheetFunction нет SumProduct? Есть
 
Цитата
e_artem написал:
пример кода не работает
И не заработает без файла-примера и внятного объяснения.
 
Пример выслать не могу...
Мне надо найти в строке 3 последнее значение "2017/18", т.е. номер самой правой колонки, в 3ей строке которой стоит финансовый год 2017/18.
Вышеописанной формулой это работает, теперь мне надо эту формулу VBA синтаксисом написать.
Изменено: e_artem - 17.10.2018 14:56:36
 
e_artem,
Код
Debug.Print [MAX(("2017/18"=3:3)*COLUMN(3:3))]
Лучше конечно ограничить диапазон [MAX(("2017/18"=A3:Z3)*COLUMN(A3:Z3))]
Изменено: Казанский - 17.10.2018 15:15:33
 
не работает, в immediate окне Error 2015
 
e_artem, у Вас наверно стиль ссылок R1C1, тогда ссылка в формуле должна быть R3:R3
Универсальный вариант
Код
debug.? evaluate(replace("MAX((""2017/18""=@)*COLUMN(@))","@",rows(3).address(,,application.ReferenceStyle)))
другой метод
Код
debug.? rows(3).Find("2017/18",,xlvalues,xlwhole,,xlPrevious ,,,false).Column
Изменено: Казанский - 17.10.2018 15:54:34
 
Цитата
ivanok_v2 написал:
нет SumProduct
Вроде бы должно быть. По-русски          
СУММПРОИЗВ
Не стреляйте в тапера - он играет как может.
 
Спасибо, Казанский...
Все три метода работают, и в общем-то они, дволольно, очевидные. Видимо не мой день сегодня и/или я сильно торможу сегодня
Страницы: 1
Наверх