Сравнение ячеек Vba Excel

Обновлено: 07.07.2024

Я хочу сравнить две ячейки на листе. Если ячейка T5 <> U5, отображается сообщение. У меня есть макрос VBA, который обрабатывает это и его:

If Not IsEmpty(Range("U5").Value) Then
If (Range("T5").Value <> Range("U5").Value) Then MsgBox (" ")
Конец, если

Как мне продолжить это для ячеек от T5 до T23 и от U5 до U23?

Спасибо за помощь.

Факты об Excel

ДжоМо

MrExcel MVP

Эрик В

MrExcel MVP

Ивкочис

Новый участник

Не работает так, как я хочу. Он должен сравнивать каждую ячейку, например. т5 и у5; t6 и u6 и т.д. Не весь диапазон.

ДжинКим

Обычная доска

ДжоМо

MrExcel MVP

Не работает так, как я хочу. Он должен сравнивать каждую ячейку, например. т5 и у5; t6 и u6 и т.д. Не весь диапазон.

Код, который я опубликовал, перебирает весь диапазон, сравнивая t5 и u5, а затем t6 и u6 .

Если в ячейке столбца u есть значение, которое отличается от значения в ячейке столбца t, появится всплывающее окно сообщения. В противном случае ничего не происходит.

Ивкочис

Новый участник

Код, который я опубликовал, перебирает весь диапазон, сравнивая t5 и u5, а затем t6 и u6 .

Если в ячейке столбца u есть значение, которое отличается от значения в ячейке столбца t, появится всплывающее окно сообщения. В противном случае ничего не происходит.

Я не знаю, почему это не работает. Одна из проблем заключается в том, что даже когда я ввожу значение в другую часть электронной таблицы, кроме T или U, всплывает окно сообщения. Я помещаю код в модуль Sheet not. Там также есть дополнительный код:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range("T5:T100"), Target) Is Nothing Then
If Target.Value = "Remote" Then
Call New_State_Taxes_Outlook
End If
Конец, если


If Not Application.Intersect(Range("T5:T100"), Target) Is Nothing Then
If Target.Value = "Carmel", Then
Вызов New_State_Taxes_Outlook
Конец, если
Конец, если


If Not Application.Intersect(Range("R5:R100"), Target) Is Nothing Then
If Target.Value = "Yes" Then
Вызов Преимущества_Outlook
Конец, если
Конец, если


Для i = от 1 до 23
Если не пусто(Диапазон("U" & i)) Тогда
Если (Диапазон("T" & i).Значение <> Диапазон ("U" & i).Value) Затем MsgBox "Вы хотели что-то между этими кавычками?"
Конец, если
Далее i

Как сравнить два столбца в Excel с помощью VBA

Сравнение столбцов данных вручную не является реалистичным подходом при работе с большими наборами данных. Давайте покажем вам, как сравнить два столбца в Excel с помощью VBA и автоматизировать этот процесс.

VBA имеет встроенную функцию StrComp, которая может сравнивать две отдельные строки. Эта функция возвращает целое число на основе результата сравнения. Ноль '0' означает идеальное совпадение, а приведенный ниже пример кода выделяет ячейку, если результат НЕ равен 0.

Функция StrComp получает 3 аргумента. Первые 2 аргумента — это сравниваемые строки, а последний — тип сравнения. Обратите внимание, что третий аргумент является необязательным. Если этот параметр не опущен, параметр Option Compare будет определять тип сравнения. Ниже приведены доступные варианты:

Код требует, чтобы пользователь выбрал столбцы в одном диапазоне. Выбранный диапазон присваивается переменной диапазона bothcolumns, и каждая ячейка в этом диапазоне сравнивается построчно. Оператор With позволяет нам не использовать оба столбца каждый раз, а цикл For…Next позволяет нам проверять каждую ячейку.

После того, как вы получите диапазон, вы можете использовать свойство ColorIndex, чтобы установить для этого диапазона цвет. Ниже приведены некоторые порядковые номера цветов:

  • 3: красный
  • 5: Синий
  • 6: желтый
  • 0: без заливки

Во-первых, вам нужно добавить модуль в рабочую книгу или файл надстройки, чтобы иметь возможность использовать код. Скопируйте и вставьте код в модуль, чтобы запустить его. Главное преимущество модульного метода в том, что он позволяет сохранить код в файле, чтобы его можно было использовать позже. Кроме того, подпрограммы в модулях можно использовать с помощью значков на лентах меню или сочетаний клавиш. Не забудьте сохранить файл в формате XLSM или XLAM, чтобы сохранить код VBA.

VBA позволяет использовать операторы сравнения для сравнения значений. Используя эти операторы, вы можете сравнивать значения и возвращать в результате логическое значение True или False.

Список основных операторов сравнения в VBA

Сначала мы отобразим список операторов сравнения, которые можно использовать в коде VBA:

Оператор сравнения

Больше или равно

Операция Равно проверяет, равны ли два значения, и возвращает True или False. Вот пример кода:

В этом примере мы хотим проверить, равен ли intA intB. Если это правда, значение логического значения blnResult будет True, в противном случае оно будет False.

Сначала мы устанавливаем значения intA и intB равными 5:

После этого мы используем оператор = в операторе If, чтобы проверить, равны ли значения intA и intB:

Обе переменные равны 5, поэтому blnResult возвращает True:

операторы сравнения vba равны

Изображение 1. Использование оператора "равно"

Не равно

Операция Не Равно проверяет, не равны ли два значения, и возвращает значение "Истина" или "Ложь". Вот пример кода:

В этом примере мы хотим проверить, не равен ли intA intB. Если это правда, значение логического значения blnResult будет True, в противном случае оно будет False.

Мы используем оператор <> в операторе If, чтобы проверить, различаются ли значения intA и intB:

Значение intA равно 5, а значение intB равно 6, переменные не равны, поэтому blnResult возвращает True:

операторы сравнения vba не равны

Изображение 2. Использование оператора "Не равно"

Больше, чем

Операция Больше чем проверяет, больше ли первое значение, чем второе значение, и возвращает True или False. Вот пример кода:

В этом примере мы хотим проверить, больше ли intA, чем intB. Если это правда, значение логического значения blnResult будет True, в противном случае оно будет False.

Кроме того, мы используем оператор > в операторе If, чтобы проверить, больше ли значение intA, чем intB:< /p>

В заключение, поскольку intA больше, чем intB, blnResult возвращает True:

операторы сравнения vba больше, чем

Изображение 3. Использование оператора "больше чем"

Больше или равно

Операция Больше или равно проверяет, является ли первое значение большим или равным второму значению, и возвращает значение True или False. Вот пример кода:

В этом примере мы хотим проверить, больше ли intA intB или равно ему. Если это правда, значение логического значения blnResult будет True, в противном случае оно будет False.

Мы используем оператор >= в операторе If, чтобы проверить, является ли значение intA больше или равным intB:< /p>

В заключение, поскольку обе переменные равны 5, blnResult возвращает True:

операторы сравнения vba больше или равны

Изображение 4. Использование оператора "больше" или "равно"

Меньше чем

Операция Меньше проверяет, меньше ли первое значение второго значения, и возвращает True или False. Вот пример кода:

В этом примере мы хотим проверить, меньше ли intA, чем intB. Если это правда, значение логического значения blnResult будет True, в противном случае оно будет False.

Мы используем If intA intB Then

Поскольку intA меньше, чем intB, blnResult возвращает True:

операторы сравнения vba менее

Изображение 5. Использование оператора "меньше"

Программирование VBA стало проще

automacro

Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!

Меньше или равно

Операция Меньше или Равно проверяет, меньше или равно первое значение, и возвращает значение True или False. Вот пример кода:

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

Чтобы сделать эти методы более понятными, я использовал образец набора данных двух банков, имеющих Полное имя, Email_ID и Адрес. Я буду использовать этот набор данных, чтобы проверить, у одного и того же лица есть счета в обоих банках или нет.

Образец набора данных

Скачать для практики

4 способа использования макроса Excel для сравнения двух столбцов

1. Использование макроса для выделения уникальных значений при сравнении двух столбцов

С помощью макроса VBA можно выделить уникальные значения двух столбцов.
Для этого я возьму вместе столбцы одного типа.

Использование макроса VBA для выделения уникальных значений при сравнении двух столбцов

Теперь откройте вкладку "Разработчик" >> выберите Visual Basic
Вы также можете использовать клавиатуру ALT + F11, чтобы открыть редактор VBA.


Затем откроется Microsoft Visual Basic для приложений.
Оттуда откройте «Вставка» >> выберите «Модуль».


Откроется модуль, затем введите следующий код в открытом модуле.

Использование макроса VBA для выделения уникальных значений при сравнении двух столбцов

Здесь я объявил подпроцедуру Highlighting_Comparing_2Columns, где Twocolumns — тип Range, а i — переменные типа Integer.

Я использовал оператор IF для сравнения значений выбранного диапазона ячеек, а также цикл FOR для проверки всех строк.

Затем, если сравниваемое значение уникально по строке, оно будет выделено желтым цветом, поскольку я использовал ColorIndex = 6.

Наконец, сохраните код и вернитесь к рабочему листу.

Затем выберите диапазон ячеек для применения VBA
➤ Здесь я выбрал диапазон B4:C10.
Далее откройте вкладку «Вид» >> из «Макросы» >> выберите «Просмотр макросов»


➤ Появится диалоговое окно.

Использование макроса VBA для выделения уникальных значений при сравнении двух столбцов

Теперь в имени макроса выберите столбцы Highlighting_Comparing_2, а также выберите книгу в макросах.
Наконец, запустите выбранный макрос.

Следовательно, будут выделены все уникальные значения двух столбцов.

Использование VBA для выделения уникальных значений при сравнении двух столбцов

Опять же, вы можете запустить макрос для сравнения адресов.

Использование макроса VBA для выделения уникальных значений при сравнении двух столбцов

Здесь выделены уникальные значения обоих столбцов.


2. Использование макроса для поиска совпадений при сравнении двух столбцов

Чтобы сравнить два столбца и найти совпадения, вы также можете использовать макрос VBA.

Здесь я хочу найти совпадения столбца Email_ID.
Чтобы начать процедуру, откройте вкладку "Разработчик" >> выберите Visual Basic
Вы также можете использовать клавиатуру ALT + F11, чтобы открыть редактор VBA.

Использование макроса VBA для поиска совпадений при сравнении двух столбцов

Затем откроется Microsoft Visual Basic для приложений.
Теперь откройте «Вставка» >> выберите «Модуль».


Откроется модуль, затем введите следующий код в открытом модуле.

Использование VBA для поиска совпадений при сравнении двух столбцов

Здесь я объявил подпроцедуру Find_Matches_Comaring2Columns, где CompareRange, x и y — переменные типа Variant.

Предоставлен диапазон ячеек F5:F11 для сравнения значений.

Я использовал оператор IF, чтобы сравнить, равны ли значения x и y. Также используются циклы FOR для проверки всех значений Selection и CompareRange.

Затем, если сравниваемое значение равно, значения будут помещены в соседний столбец.

Наконец, сохраните код и вернитесь к рабочему листу.

Затем выберите диапазон ячеек для применения VBA
➤ Здесь я выбрал диапазон C5:C11.
Далее откройте вкладку «Вид» >> из «Макросы» >> выберите «Просмотр макросов»


➤ Появится диалоговое окно.

Использование макроса VBA для поиска совпадений при сравнении двух столбцов

Теперь в имени макроса выберите Find_Matches_Comaring2Columns, а также выберите книгу в макросах.
Наконец, запустите выбранный макрос.

Поэтому все совпадающие значения двух выбранных столбцов будут помещены в новый столбец с именем Matches.


Похожие чтения:

3. Использование макроса для извлечения уникальных значений из двух столбцов

Возможно, вам потребуется извлечь уникальные значения путем сравнения двух столбцов. В этом разделе я покажу вам, как это сделать с помощью макроса VBA.

Здесь я добавил два дополнительных столбца с именами Уникальное имя и Уникальный адрес.

Для начала откройте вкладку "Разработчик" >> выберите Visual Basic
Вы также можете использовать клавиатуру ALT + F11, чтобы открыть редактор VBA.

Использование макроса VBA для извлечения уникальных значений из двух столбцов

Теперь откроется Microsoft Visual Basic для приложений.
Затем откройте «Вставка» >> выберите «Модуль».


Откроется модуль, затем введите следующий код в открытом модуле.

Использование макроса VBA для извлечения уникальных значений из двух столбцов

Здесь я объявил подпроцедуру Extract_Uniques_2Columns, где rngCell — это переменная типа Range.

Для сравнения значений я использовал оператор IF внутри цикла FOR.

Использовал цикл FOR дважды для сравнения двух разных типов значений.

Наконец, сохраните код и вернитесь к рабочему листу.

Затем откройте вкладку "Вид" >> из "Макросы" >> выберите "Просмотр макросов"

Использование VBA для извлечения уникальных значений из двух столбцов

➤ Появится диалоговое окно.


Теперь в имени макроса выберите Extract_Uniques_2Columns, а также выберите книгу в макросах.
Наконец, запустите выбранный макрос.

Таким образом, будут извлечены все уникальные значения заданных диапазонов столбцов.

Использование макроса VBA для извлечения уникальных значений из двух столбцов

4. Использование макроса для выделения повторяющихся значений из разных листов

Вы также можете выделить повторяющиеся значения из разных листов, сравнив два столбца при использовании макроса.

Здесь я взял два дополнительных листа, чтобы продемонстрировать процедуру.

Использование макроса VBA для выделения повторяющихся значений из разных листов

Теперь откройте вкладку "Разработчик" >> выберите Visual Basic (вы также можете использовать ALT + F11).


Затем откроется Microsoft Visual Basic для приложений.
Затем откройте «Вставка» >> выберите «Модуль».


Откроется модуль, затем введите следующий код в открытом модуле.

Использование макроса VBA для выделения повторяющихся значений из разных листов

Здесь я объявил подпроцедуру Highlight_Comapring_2sheetsColumn, где Last_sheet1_Row и Last_sheet2_Row — переменные типа Long. Кроме того, i, j — это две переменные типа Integer.

Затем использовал оператор IF, чтобы проверить, равны или нет сравниваемые значения внутри вложенных циклов FOR.

Затем, если сравниваемое значение равно или совпадает, будут выделены значения столбца Email_ID.

Здесь я использовал rgbRed как Font.Color. При желании вы можете использовать любой цвет для выделения значений.

Наконец, сохраните код и вернитесь к рабочему листу.

Далее откройте вкладку «Вид» >> из «Макросы» >> выберите «Просмотр макросов»


➤ Появится диалоговое окно.

Использование макроса VBA для выделения повторяющихся значений из разных листов

Теперь в имени макроса выберите столбец Highlight_Comparing_2sheets, а также выберите книгу в макросах.
Наконец, запустите выбранный макрос.

Следовательно, будут выделены все повторяющиеся значения столбца Email_ID на обоих листах.


Выделены повторяющиеся значения листа1.

Использование макроса VBA для выделения повторяющихся значений из разных листов

Выделены повторяющиеся значения листа2.

Раздел практики

В рабочей тетради я дал практический лист, чтобы попрактиковаться в объясненных способах сравнения двух столбцов. Вы можете скачать его по ссылке выше.


Заключение

В этой статье я объяснил 4 простых и быстрых способа макроса Excel для сравнения двух столбцов. Эти разные способы помогут вам сравнить два столбца. И последнее, но не менее важное: если у вас есть какие-либо предложения, идеи и отзывы, не стесняйтесь комментировать ниже.

Читайте также: