Нужна помощь в создании кода.
Мне нужно задать 2 условия на столбик B, i<=6 и i>=22. И все значения, входящие в этот интервал, должны просуммироваться.
Данные на листе1, значение нужно вывести на лист2.
[вложение удалено администратором]
Макрос
Sub Макрос()
Dim sh_src As Worksheet, sh_res As Worksheet
Dim сумма As Double
Dim lr As Long, lc As Long, i As Long
'1. Присваиваем имена листам, с которым надо работать.
' Далее в коде будем обращаться к листам по этим именам.
' Может быть так будет удобнее писать и читать код.
Set sh_src = Worksheets("Лист1")
Set sh_res = Worksheets("Лист2")
'2. Поиск последней строки и столбца на листе-источнике.
' End не ищет в скрытых строках и столбцах.
' Поиск последней строки на листе-источнике в столбце B.
lr = sh_src.Cells(sh_src.Rows.Count, "B").End(xlUp).Row
' Поиск последнего столбца на листе-источнике в строке 2.
lc = sh_src.Cells(2, sh_src.Columns.Count).End(xlToLeft).Column
'3. Подсчёт суммы согласно заданию.
For i = 3 To lr
Select Case sh_src.Cells(i, "B").Value
Case Is <= 6, Is >= 22
сумма = сумма + WorksheetFunction.Sum(sh_src.Range(sh_src.Cells(i, "D"), sh_src.Cells(i, lc)))
End Select
Next i
'4. Вставка суммы на лист-результат.
sh_res.Range("C3").Value = сумма
'5. Сообщение, чтобы юзер понял, что макрос завершил работу.
MsgBox "Готово.", vbInformation
End Sub
Большое спасибо. Код работает.