У меня есть таблица, где я пытаюсь многократно заполнять столбец K конкретными данными из разных, но похожих точек (80 ячеек вниз для каждой итерации) в столбце E.Настройка цикла в Excel VBA для повторного подбора определенного диапазона
Таким образом, K2 должен, например, отображать общее количество E25 + E35 + E42 + E56 + E63.
Затем K3 должен отображать общее количество E105 + E185 + E122 + E136 + E143.
Я написал макрос, который делает первый шаг (и работает), которая выглядит следующим образом:
Sub disctoptest()
Dim source As Range
Dim destination As Range
Dim total As Long
Set destination = Range("K2")
Set source = Range("E25")
total = WorksheetFunction.Sum(_
source.Value + _
source.Offset(10, 0).Value + _
source.Offset(17, 0).Value + _
source.Offset(31, 0).Value + _
source.Offset(38, 0).Value)
destination.Select
destination.Value = total
Set source = Nothing
Set destination = Nothing
End Sub
Затем я вставил цикл, чтобы повторить операцию для полноты базы данных, но всякий раз, когда я запускайте добавленный макрос excel либо зависает, либо просто отказывается работать. Это код, я использую для цикла:
Sub disctop()
Dim source As Range
Dim destination As Range
Dim total As Long
Set destination = Range("K2")
Set source = Range("E25")
Do until destination.offset(0, -1) = ""
destination.Select
total = WorksheetFunction.Sum(_
source.Value + _
source.Offset(10, 0).Value + _
source.Offset(17, 0).Value + _
source.Offset(31, 0).Value + _
source.Offset(38, 0).Value)
destination.Value = total
source = source.Offset(80, 0)
destination = destination.Offset(1, 0)
Loop
Range("A1").Activate
Set source = Nothing
Set destination = Nothing
End Sub
В случае может быть проще в использовании другого типа цикла, мне нужно повторить операцию ровно 680 раз в колонке K.
Любой советы и рекомендации были бы очень признательны!
Это можно сделать с помощью формулы, которую можно перетащить, которая будет автоматически обновляться. –
Какая формула? –
Вам необходимо установить источник и назначение внутри цикла. Вы создаете бесконечный цикл, помещая значения смещений в диапазоны и не сворачивая сам диапазон на смещение. –