SUM диапазон, где диапазон является переменной - PullRequest
0 голосов
/ 24 мая 2018

У меня есть:

Set QuanityRange = Sheets("Raw_Data").Range("F2:F" & lastDataRow)
MsgBox "This is the Data Range: " & vbNewLine & "Quanities: " & QuanityRange.Address()

Это отображает $ F $ 2: $ F $ 1838 в окне сообщения.

Тогда, если у меня есть:

Total = WorksheetFunction.Sum(QuanityRange)
MsgBox "Total is: " & Total

Этов окне сообщения отображается 15170.

Моя проблема заключается в том, что у меня в данный момент есть:

Range("B2", Cells(lastMatrixRow, lastMatrixCol)).Formula = "=Sum(Raw_Data!$F$2:$F$10000)"

Это работает, в каждой ячейке от 15 до 70 помещается 15170, в котором находится местоположение(lastMatrixRow, lastMatrixCol) в этом случае.

Однако я хочу сделать следующее:

Range("B2", Cells(lastMatrixRow, lastMatrixCol)).Formula = "=Sum(QuanityRange)"

вместо:

Range("B2", Cells(lastMatrixRow, lastMatrixCol)).Formula = "=Sum(Raw_Data!$F$2:$F$10000)"

, но это не такРабота.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если вы пытаетесь поместить адрес переменной диапазона в формулу - это одно из решений:

Public Sub TestMe()
    Dim varRange As Range
    Set varRange = Range("F1:F5")
    Range("A1", Cells(3, 3)).Formula = "=Sum(" & varRange.Address & ")"
End Sub

Идея состоит в том, что формула справа должна быть "переводимой" в строку.

0 голосов
/ 24 мая 2018

Можете ли вы попробовать с:

Range ("B2", Cells (lastMatrixRow, lastMatrixCol)). Formula = "= Sum (" & QuanityRange.Address () & ")"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...