Хобрук: Ваш путь к мастерству в программировании

Как выбрать неизвестный диапазон из активной ячейки?

У меня есть электронная таблица с блоком данных и пустыми строками между ними. Блоки различаются по размеру. У меня есть формула, которая автоматически заполняет исходные данные, а затем копирует их в другие пустые строки, пока не достигнет следующего блока. Как заставить его выбрать следующий блок данных, чтобы мой цикл мог работать, поскольку размер блока всегда меняется? В идеале было бы какое-то свойство текущей области, которое исключает данные за активной ячейкой, потому что цикл в его текущем состоянии оставляет активную ячейку первой ячейкой в ​​новом блоке в конце каждой итерации.


Ответы:


1

Всякий раз, когда мне нужно зациклить что-то, что нужно перемещать из региона в регион, я в конечном итоге использую комбинацию Offset (как в Range(myRange).Offset(1,0)) и обычно изменение .End, чтобы убедиться, что я всегда в конце диапазона. В качестве примера (псевдокод).

Dim lastCell As Range
Dim neededCell As Range

Set lastCell = ActiveRange.End(xlDown) 'picks the last cell down
Set neededCell = lastCell.Offset(2, 0) returns the cell two rows down from the last cell in above range.

Предупреждение, я делаю это наугад, может потребоваться некоторая настройка, чтобы действительно работать... Кроме того, есть xlLeft, xlRight и clUP, если вам нужно двигаться в этих направлениях.

Также, если вам нужно выбрать новый диапазон, вы можете сделать это, просто выбрав диапазон по смещению. Мой код может быть немного грязным (все еще новым), но это должно работать.

Dim bigRange as Range
Set bigRange = ActiveSheet.Range(neededCell.Address & ":" & _
    neededCell.Offset(20, 20).Address)

Если вы начнете с needCell в «D5», это должно вернуть диапазон «D5: X25».

06.12.2012
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..