Страницы: 1
RSS
Сумма по каждой позиции в таблице, формула SUMIF в цикле DO WHILE выдает результат #ИМЯ
 
Искомые данные находятся в столбцах B и C в таблице. В столбце U находятся вынесенные записи для подсчета. Как в VBA прописать формулу SUMIF в цикле DO WHILE? Написала вот такой код, но результат: #ИМЯ? Подскажите пожалуйста, что в коде не так? Буду благодарна хотя бы за направление куда мыслить.
Код
Const StartCell = 2
    Dim LastCell As Long
    Dim i As Byte
    LastCell = Cells(Rows.Count, 1).End(xlUp).Row
    Dim MyRange As Range
    Dim OneColumnRange As Range
    Set MyRange = Range("B" & StartCell, "C" & LastCell)
    Set OneColumnRange = Range("C" & StartCell, "C" & LastCell)
       
       i = 2
              
       Do While i < 6
       Range("V" & i).Formula = "=SUMIF(MyRange,U&i,OneColumnRange)"
       i = i + 1
       Loop
Изменено: vikttur - 27.09.2021 00:50:41
 
Цитата
Вероника Игреева написал:
куда мыслить
"=SUMIF(MyRange,U&i,OneColumnRange)" -  результате и будет формула =SUMIF(MyRange,U&i,OneColumnRange) которая немного шокирует Excel
1. все ж формул нужны диапазоны в  MyRange.address
2. нужны значения  "=SUMIF(" & MyRange.address & ",U&i," & OneColumnRange.address & ")"
3  U&i  тоже нужно сформировать "=SUMIF(" & MyRange.address & ",U" & i &" ," & OneColumnRange.address & ")"

но смысла формировать диапазоны MyRange  и OneColumnRange раз потом текст делать
"=SUMIF("B" & StartCell & ":C" & LastCell & ",U" & i &" ,"C" & StartCell, "C" & LastCell & ")"

но и это работать не будет так как первый диапазон в два столбца что недопустимо при диапазоне третьего аргумента в один столбец
"=SUMIF("B" & StartCell & ":B" & LastCell & ",U" & i &" ,"C" & StartCell, "C" & LastCell & ")"
По вопросам из тем форума, личку не читаю.
 
Спасибо большое! Пойду делать!
Страницы: 1
Наверх