102 читали · 11 месяцев назад
Как заполнить пустые ячейки (вниз, то есть значениями сверху): макросы Здесь может быть много вариантов. Допустим, вы хотите заполнять все пустые ячейки в активном диапазоне — это тот диапазон, который будет выделен по нажатию Ctrl+A (до пустых строк/столбцов). К нему в коде можно обращаться так: ActiveCell.CurrentRegion Вся команда будет выглядеть так: выделяем пустые (как в предыдущем варианте вручную делали через F5 — Выделить) — это метод SpecialCells с параметром (типом выделяемых ячеек) xlCellTypeBlanks. И вставляем во все пустые формулу R[-1]C — то есть ссылаемся на ячейку сверху. Это один из множества примеров того, как формулы со стилем ссылок R1C1 пригождаются в макросах. Не переживайте, если у вас стиль ссылок A1, формулы на листе будут выглядеть именно так: =A2, =A3 и так далее. ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" Так как при отсутствии пустых ячеек в диапазоне будет выдаваться ошибку (ибо выделять будет нечего) — лучше добавить строку для игнорирования ошибок On Error Resume Next Наконец, если вы сразу хотите превратить формулы в значения, добавьте строку для этого: ActiveCell.CurrentRegion.Value = ActiveCell.CurrentRegion.Value ——— Если вы хотите заполнять ячейки только в текущем столбце от активной ячейки вниз, то CurrentRegion не подойдет. В таком случае лучше взять диапазон от активной ячейки (ActiveCell) до последней ячейки в активной области листа (на нее можно ссылаться так — UsedRange). С помощью свойства Resize увеличиваем диапазон от одной активной ячейки, добавляя столько строк, сколько есть до конца активной области листа. АктивнаяЯчейка. Увеличиваем (строк на листе — строка активной ячейки + 1) Например, активна ячейка A10. На листе 3000 строк. Значит, мы добавляем к активной ячейке 3000-10+1 = 2991 строку и получаем диапазон A10:A3000 (в Resize указывается общее число строк (и столбцов во втором аргументе, если нужно), которое нужно включить в получаемый диапазон). Узнать число строк в диапазоне можно с помощью свойства Rows, строку активной ячейки — Row. Все вместе будет выглядеть так: ActiveCell.Resize(ActiveSheet.UsedRange.Rows.Count - ActiveCell.Row + 1).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
📌 Как быстро заполнить все пустые ячейки (Пример решения)
Ребята, всем привет! 👋 Ни так давно мы начали серию уроков по изучению сводных таблиц. И конкретно в данном уроке мы рассмотрели как создается сводная таблица. 👉 Но вот в чем вопрос... Если вы получаете отчет Excel или экспорт из другой системы с большим количеством пустых ячеек в столбце категории, то создать отчет сводной таблицы сразу не получиться. А если таких категорий 100+ или 1000+? Вряд ли захочется править вручную. Но решение есть!!! ✨ А прежде, чем мы начнем 📣 напомню, теперь у нас на канале есть удобный рубрикатор 👉 Быстрый поиск решения...