Я создаю автоматический шаблон отчета, который помещается на одной странице. Этот отчет включает в себя маркеры и диаграмму. Из-за запроса на презентацию мне нужно убедиться, что график всегда находится на одном и том же расстоянии под последней точкой маркера. К сожалению, может быть 7 пунктов пули или 2. Так что автоматизировать это стало хлопотно.
Смотрите изображение ниже, но я думаю:
- Укажите диапазон (B11:B17)
- Перейти к нижней части этого диапазона и работать
- Найдите пустые ячейки в этом диапазоне и удалите всю строку (выпуск 1)
- Обновите переменную диапазона, чтобы приспособить изменение (неспособный сделать)
- Выполните предыдущие шаги
- Получите исходный размер диапазона и вставьте те строки, где он должен быть
- Вернитесь к моей первоначальной процедуре, чтобы заполнить маркеры, а затем снова начните с шага 1.
С VBA я борюсь, но использую все больше и больше. Я искал и пробовал разные способы создания диапазона и удаления пустых ячеек / строк. Некоторые из них были опасно плохими. Я начинаю с этого простого кода ниже, но он не работает:
Set MyFullRange = Range("B11:B17")
MyFullRange.Select
For CellRange = 1 To MyFullRange.Rows.Count
If MyFullRange(CellRange).End(xlUp).Row = "" Then
MyFullRange(CellRange).EntireRow.Delete xlShiftUp
End If
Next CellRange
Мои проблемы
- Строки маркера заполняются ссылкой на другой лист (= ProjectBullet_1, = ProjectBullet_2 и т.д.). Поэтому у меня возникают проблемы с распознаванием пустой ячейки и соответствующим образом удалением строки.
- Повторная вставка строк, чтобы вернуться к моей исходной структуре шаблона. (см. возможную альтернативную идею ниже)
- Маркированные строки появляются в определенной части шаблона $ B $ 20:$ B:$ 26. (ниже и выше других заполненных строк) и предыдущие попытки удалить строки привели к удалению других пустых строк.
Было бы проще (особенно для шага 6), если бы я просто скопировал лист шаблона, назвал его как-то еще и перенес шаги с 1 по 5 на копию, удалив копию после ее экспорта?
Я знаю, что мне нужно разбить эту проблему на части, но я борюсь с первой частью.