Я пытаюсь суммировать все значения предопределенного диапазона ячеек. Однако этот диапазон определяется только строками (например, searchRngQue = строки с 5 по 10). Теперь я попробовал следующее, чтобы извлечь номера строк из диапазона и добавить соответствующий столбец, чтобы определить точные ячейки, из которых должна быть рассчитана сумма. Однако код дает мне ошибку времени выполнения 1004: «Ошибка, определяемая приложением или объектом»
Другая проблема заключается в том, что методы .End(xlUp/xlDown) не возвращают первую/последнюю строку диапазона. Что я должен использовать вместо этого? Может ли кто-нибудь показать мне, что мне не хватает?! Заранее большое спасибо!
sumQue = Application.WorksheetFunction.Sum(.Range(.Cells(searchRngQue.End(xlUp).Row, 8) & ":" & .Cells(searchRngQue.End(xlDown).Row, 8)))
Вы хотели сделать это:
sumQue = Application.WorksheetFunction.Sum(.Range(.Cells(searchRngQue.End(xlUp).Row, 8), .Cells(searchRngQue.End(xlDown).Row, 8)))
При работе с Range(Cells(1,1), Cells(100,1))
вы используете ,
в качестве разделителя, а не :
Да, но это было бы немного... излишне? :D
Отлично спасибо! Теперь последний вопрос: как определить начальную и конечную строку searchRngQue? .end(xlup/down) не помогает...
searchRngQue.Cells(1,1).Row
будет первым и searchRngQue.Rows.Count
последним.
@Damian, конечно, было бы, но я просто хотел дать контекст для OP, чтобы, надеюсь, понять разницу
Да, иначе вам нужно было бы получить cell.address, чтобы сделать строковое представление диапазона