Vba: как заполнить пустые ячейки значением выше
Часто вам может потребоваться использовать VBA для заполнения пустых ячеек листа Excel значениями ячеек, находящихся непосредственно над ними.
Для этого вы можете использовать следующий базовый синтаксис:
Sub Fill_From_Above() With Range(" A2:B " & Range(" C " & Rows.Count).End(xlUp).Row) .SpecialCells(xlBlanks).FormulaR1C1 = " =R[-1]C " .Value = .Value End With End Sub
В этом конкретном примере будут заполнены все пустые ячейки, от ячейки A2 до столбца B до последней строки, содержащей значение в столбце C.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Используйте VBA для заполнения пустых ячеек приведенным выше значением.
Предположим, у нас есть следующий набор данных в Excel, который показывает очки, набранные в различных играх разными баскетболистами:
Предположим, мы хотим заполнить пустые ячейки в столбцах A и B значениями ячеек над ними.
Для этого мы можем создать следующий макрос:
Sub Fill_From_Above() With Range(" A2:B " & Range(" C " & Rows.Count).End(xlUp).Row) .SpecialCells(xlBlanks).FormulaR1C1 = " =R[-1]C " .Value = .Value End With End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что все пустые ячейки в столбцах «Команда» и «Игрок» заполнены соответствующим значением из ячеек над ними.
Примечание . Мы использовали xlBlanks для идентификации пустых ячеек в диапазоне, затем использовали =R[-1]C , чтобы заполнить пробелы значением ячейки, расположенной на одну строку выше.
Конечным результатом является то, что мы смогли заполнить все пустые ячейки значениями ячеек над ними.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как проверить, пуста ли ячейка
VBA: Как использовать «Если не пусто»
VBA: как подсчитать ячейки с определенным текстом