VBA для каждой ячейки в диапазоне в Excel (3 метода)

  • Поделись Этим
Hugh West

В больших базах данных вы проводите большую часть времени, работая с диапазонами и ячейками. Иногда вам приходится повторять одно и то же действие в больших диапазонах или большом количестве ячеек. Это одновременно убивает ваше время и снижает эффективность. Разумное решение этой проблемы - построить Код программирования VBA который будет проходить по каждой ячейке диапазона и выполнять одно и то же действие, указанное вами. Сегодня в этой статье мы рассмотрим, как сделать VBA для каждой ячейки диапазона в Excel.

Скачать Рабочую тетрадь для практических занятий

Скачайте этот сборник упражнений, чтобы выполнить задание, пока вы читаете эту статью.

Код VBA для каждой ячейки диапазона в Excel.xlsx

3 подходящих способа применения 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!

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.