У меня есть этот фрагмент кода, который я позаимствовал из другого поста и отредактировал (или, по крайней мере, попробовал), который я пытаюсь использовать для подведения итогов некоторых динамических диапазонов.Я использую ключевой столбец с 0, 1 и 2.Я хочу, чтобы код добавил все соответствующие столбцы напротив каждого 1, пока он не достигнет 2, а затем поместил промежуточный итог в столбец с 2. В настоящее время мой код продолжает работать в обратном направлении, поэтому он вводит неправильные промежуточные итоги. Ниже приведенфрагмент моего кода.
'count all 1's in each section till next 2 for subtotaling each section
With Range("P13:P" & lRow1)
Set rFind = .Find(What:=2, LookIn:=xlFormulas, SearchOrder:=xlByRows, _
Lookat:=xlWhole, SearchDirection:=xlNext, searchFormat:=False)
If Not rFind Is Nothing Then
s = rFind.Address
Do
Set r1 = rFind
Set rFind = .FindNext(rFind)
If rFind.Address = s Then
Set rFind = .Cells(.Cells.Count)
r1.Offset(, -5).Value = Application.Sum(Range(r1.Offset(-1, -5), r1.Offset(, -5)))
Exit Sub
End If
r1.Offset(, -5).Value = Application.Sum(Range(r1.Offset(-1, -5), rFind.Offset(, -5)))
Loop While rFind.Address <> s
End If
End With
Даже сейчас, когда я набираю этот вопрос, я думаю, что должен использовать другой подход.Мой код помещает 0 в каждую пустую строку, и в настоящее время он настроен на размещение 0 в строке выше 1-го 1. С этим я мог бы найти 1-й 0, затем добавить все 1, пока я не достигну 2, затем найтиследующий 0 и так далее.Имеет ли это смысл?
Ниже приведено изображение того, что макрос в настоящее время производит.