Здравствуйте!
Я пытаюсь создать макрос, который находит пустую ячейку в диапазоне в одном столбце и суммирует все ячейки между этой пустой ячейкой и предыдущей пустой ячейкой.
Я много искал в Интернете, и хотя другие задавали этот вопрос, я не нахожу ответы на них особенно полезными в моей ситуации, так как мне нужно, чтобы это работало через 3500+ строк.
E.g:
4
3
4
BLANK 1
2
5
7
1
BLANK 2
1
4
BLANK 3
В этом случае ячейка с именем "BLANK 1"
будет суммой трех предыдущих строк: 4+3+4=11"Blank 2"
будет 15 и так далее.
Диапазон "G8:G3561".
Изменить
Для быстрого ответа см. Ответ Mr_Nitrogen. Это прекрасно работает! Однако, поскольку я новичок в VBA и кодировании в целом, я не знаю, как и почему работает код.
Я очень хочу лучше понять VBA, поэтому я продолжаю эту тему (если это разрешено).
Кроме того, я хотел бы предоставить доказательства для комментаторов, что я действительно работал над этим сам и что я предпочитаю создавать свой собственный код.
Для меня важно понять, почему мой код работает или не работает, поэтому я надеюсь, что вы все еще хотите помочь мне разработать мой собственный код.
Наконец-то я нашел подход, который мне кажется логичным. Я знаю, что это не самый простой способ сделать это, но я хотел бы знать, может ли он работать.
Я написал следующий код.
Sub Sum_storage()
Dim rng As Range
Dim cell As Range
Dim cell2 As Range
Dim cell3 As Range
Range("G8").End(xlDown).Offset(1, 0).Select
Set cell = Selection
cell.Value = "temp" 'Finds the first blank cell in column G _
and creates a temporary value in order _
to find the second blank cell
Range("G8").End(xlDown).Offset(1, 0).Select
Set cell2 = Selection
cell.Offset(1, 0).Select
Set cell3 = Selection 'The range i need to sum can _
now be described as "cell3:cell2"
Set rng = Range(Range("cell3"), Range("cell2")) 'The code works until this point
cell2.Value = WorksheetFunction.Sum(rng)
Идея состоит в том, чтобы определить диапазон, который я хочу суммировать с несколькими переменными.
Моя проблема заключается в попытке сослаться на эти переменные (и установить их более простым способом, чем использование .Offset).
Просто невозможно установить диапазон (rng) на основе двух ранее установленных диапазонов?
Если это возможно, следующим шагом для меня будет создание какого-то цикла, который мог бы заставить это работать для всех 3500+ строк.