Переменная Lastrow в формулу - PullRequest
0 голосов
/ 16 ноября 2018

Я знаю, что этот вопрос задавался несколько раз с хорошим ответом, но я все еще не могу решить эту проблему. После нахождения последней строки столбца (предположим, что в столбце нет пустых значений) я хочу использовать переменную lastrow в моей формуле

Следующее работает нормально, чтобы скопировать формулу в последнюю строку

LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row ' obtains the last row value

Worksheets("Test").Range("i2:i" & LastRow).Formula = "=SUMPRODUCT(-- 
($B$2:$B$189<=B2)*(B2<=$D$2:$D$189))"

что мне нужно сделать, это использовать i.e конкатенацию переменной lastrow вместо $ B $ 189 и $ D $ 189 ссылок внутри формулы

Я попробовал следующее безуспешно;

Worksheets("Test").Range("i2:i" & LastRow).Formula = "=SUMPRODUCT(-- 
(""$B$2:$B$"" & LastRow<=B2)*(B2<=""$D$2:$D$"" & LastRow))"

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы должны быть более осторожными с вашими адресами и формулами. Похоже, вы пытаетесь заполнить столбец I своей формулой, поэтому вам следует подсчитать строки в столбце H (столбцы № 8) - LastRow = .Cells(.Rows.Count, 8).End(xlUp).Row. Если вы не уверены, как ввести формулу с помощью VBA, попробуйте записать ее с помощью функции Record Macro и изучите код на предмет идей. Код ниже должен помочь вам с вашей задачей:

    Dim LastRow As Double

    With Worksheets("Test")
        LastRow = .Cells(.Rows.Count, 8).End(xlUp).Row
        .Range("i2:i" & LastRow).Formula = "=SUMPRODUCT(-- ($B$2:$B$" & LastRow & "<=B2)*(B2<=$D$2:$D$" & LastRow & "))"
    End With
0 голосов
/ 16 ноября 2018

У вас есть проблемы с кавычками и конкатенацией в формуле.

Попробуйте,

"=SUMPRODUCT(--($B$2:$B$" & LastRow & "<=B2)*(B2<=$D$2:$D$" & LastRow & "))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...