Оглавление
В больших базах данных вы проводите большую часть времени, работая с диапазонами и ячейками. Иногда вам приходится повторять одно и то же действие в больших диапазонах или большом количестве ячеек. Это одновременно убивает ваше время и снижает эффективность. Разумное решение этой проблемы - построить Код программирования VBA который будет проходить по каждой ячейке диапазона и выполнять одно и то же действие, указанное вами. Сегодня в этой статье мы рассмотрим, как сделать VBA для каждой ячейки диапазона в Excel.
Скачать Рабочую тетрадь для практических занятий
Скачайте этот сборник упражнений, чтобы выполнить задание, пока вы читаете эту статью.
Код VBA для каждой ячейки диапазона в Excel.xlsx3 подходящих способа применения VBA для каждой ячейки диапазона в Excel
С помощью кода VBA можно выполнить одну и ту же формулу для каждой ячейки диапазона, столбца или строки. В этом разделе мы рассмотрим все разделы.
1. Применить VBA для каждой ячейки диапазона
Рассмотрим ситуацию, когда вам нужно применить один и тот же код VBA для каждой ячейки в заданном диапазоне ( B3:F12 ). Для этого мы создадим код VBA. Инструкции приведены ниже
Шаг 1:
- Сначала мы вставим командную кнопку, чтобы упростить нашу работу. Перейдите к вашему Вкладка разработчика , выберите Вставка , и нажмите на командную кнопку, чтобы получить его.
- У нас есть командная кнопка.
- Щелкните правой кнопкой мыши на командной кнопке, чтобы открыть опции. Выберите и щелкните на Свойства чтобы изменить некоторые параметры.
- Измените название командной кнопки. Здесь мы изменим название на " Нажмите здесь ".
Шаг 2:
- Теперь дважды щелкните на командной кнопке, чтобы открыть VBA Модуль Здесь мы запишем наш код VBA для выполнения задачи.
- Сначала мы объявим две переменные. Мы называем объекты диапазона CL и Rng Вы можете назвать их так, как вам нравится.
Dim CL As Range Dim Rng As Range
- Назначьте конкретный диапазон с помощью этой команды,
Set Rng = Worksheets("VBA1").Range("B3:F12")
- Здесь VBA1 - это имя нашего рабочего листа, а B3:F12 это наш определенный диапазон.
- Теперь мы будем использовать код для выполнения действий через каждую ячейку диапазона. Код следующий,
For Each CL In Rng CL.Value = 100 Next CL
- Значение = 100 относится к тому, что он вернется 100 для каждой ячейки в заданном диапазоне.
- Таким образом, наш окончательный код становится,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub
- Перейдите на основной рабочий лист и нажмите на командную кнопку, чтобы запустить VBA для каждой ячейки в диапазоне.
Шаг 3:
- Как и числовые значения, мы также можем поместить текстовые значения для каждой ячейки диапазона. В этом случае перейдите в окно VBA и вместо 100 вставьте текстовое значение, через которое вы хотите пробежаться. Измененная строка будет выглядеть следующим образом
CL.Value = "ExcelWIKI"
- Нажмите на командную кнопку, и код VBA вернет это текстовое значение для каждой ячейки диапазона.
Шаг 4:
- В этом шаге мы немного углубимся. Допустим, мы хотим выделить каждую пустую ячейку в нашем диапазоне.
- Для этого добавьте новое условие к существующему коду. Новая формула выглядит следующим образом,
Если CL.Value = " " Тогда CL.Interior.ColorIndex = 3 Конец If
- Этот новый код выделит пустую ячейку красным цветом. Таким образом, полный код выглядит следующим образом,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub
- Получите результат, нажав на командную кнопку.
Похожие чтения:
- Как использовать объект Range в VBA в Excel (5 свойств)
- Использование смещения диапазона в VBA (11 способов)
- Как подсчитать текст в Excel (7 простых приемов)
2. Вставка кода VBA для каждой ячейки в столбце диапазона
Мы можем запустить код VBA и для каждой ячейки в столбце. Предположим, у нас есть столбец, содержащий числа, и нам нужно раскрасить значения, которые меньше 10. Мы создадим код VBA для запуска каждой ячейки в столбце.
Шаг 1:
- Создайте командную кнопку, следуя инструкциям, которые мы рассмотрели.
Шаг 2:
- Дважды щелкните на командной кнопке, чтобы открыть окно VBA.
- Мы объявим переменную под названием " c " типа long. Мы используем здесь переменную типа Long, потому что переменные Long имеют большую емкость, чем переменные Integer.
Dim c As Long
- Затем добавьте строку кода, которая изменит цвет шрифта всех ячеек в нашем столбце на черный.
Columns(1).Font.Color = vbBlack
- Вставьте цикл для этого кода.
For c = 1 To Rows.Count Next c
- В этом шаге мы введем условие, чтобы закрасить значения, которые меньше значения ячейки C4 (10). Для этого введите следующий код.
If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If
- Таким образом, окончательный код таков,
Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub
- VBA будет запущен и покажет результаты, когда вы нажмете на командную кнопку.
3. Напишите код VBA для каждой ячейки в строке диапазона
Мы также можем запустить код VBA для каждой ячейки в строке. В данной строке нам нужно выполнить одно и то же действие над каждой ячейкой строки.
Шаг 1:
- Добавьте командную кнопку и измените ее имя на " Нажмите здесь! "
- Дважды щелкните по кнопке, чтобы открыть окно VBA. Запишите приведенный ниже код VBA.
Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'Для каждой ячейки в строке применим заливку желтым цветом For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub
- Код будет проходить по каждой ячейке строки и применять заливку желтым цветом к каждой ячейке.
- Нажмите на кнопку, и наш результат будет здесь.
Краткие заметки
👉 Если у вас не видна вкладка разработчика, вы можете активировать ее с помощью этой инструкции.
Настроенная панель инструментов быстрого доступа → Другие команды → Настроить ленту → Разработчик → OK
Заключение
Мы рассмотрели три различных подхода к запуску VBA для каждой ячейки диапазона. Если у вас возникли вопросы или пожелания, оставляйте комментарии. Вы также можете ознакомиться с другими нашими статьями, связанными с задачами Excel!