300 Примеров

Сравнить диапазоны

Compare Ranges

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



Ситуация:

строка и столбец соответствия индекса Excel

Сравнить диапазоны в Excel VBA





Примечание: единственное уникальное значение в этом примере - 3, поскольку все остальные значения встречаются как минимум еще в одной области. Чтобы выбрать диапазон ('B2: B7, D3: E6, D8: E9'), удерживайте нажатой клавишу Ctrl и выберите каждую область.

Поместите командная кнопка на своем листе и добавьте следующие строки кода:



1. Сначала мы объявляем четыре объекта Range и две переменные типа Integer.

НиктоrangeToUseВ качествеДиапазон, singleAreaВ качествеДиапазон, ячейка1В качествеДиапазон, ячейка2В качествеДиапазон, яВ качестве Целое число, jВ качестве Целое число

2. Инициализируем объект Range rangeToUse выбранным диапазоном.

УстановленныйrangeToUse = Выбор

3. Добавьте линию, изменяющую цвет фона всех ячеек на «Без заливки». Также добавьте линию, удаляющую границы всех ячеек.

Cells.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlNone

4. Сообщите пользователю, когда он или она выбирает только одну область.

ЕслиSelection.Areas.Count<= 1 потом
MsgBox 'Выберите более одной области'.
Еще


Конец Если

Следующие строки кода (5, 6 и 7) должны быть добавлены между Else и End If.

5. Раскрасьте ячейки выбранных областей.

rangeToUse.Interior.ColorIndex = 38

6. Граница каждой области.

Для КаждыйsingleAreaВrangeToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Вес: = xlThin
СледующийsingleArea

7. В остальном эта программа выглядит следующим образом.

Дляя = 1КrangeToUse.Areas.Count
Дляj = я + 1КrangeToUse.Areas.Count
Для Каждыйячейка1ВrangeToUse.Areas (i)
Для Каждыйячейка2ВrangeToUse.Areas (j)
Еслиcell1.Value = cell2.Valueпотом
cell1.Interior.ColorIndex = 0
cell2.Interior.ColorIndex = 0
Конец Если
Следующийячейка2
Следующийячейка1
Следующийj
Следующийя

Пояснение: это может показаться немного сложным, но это не так уж и сложно. rangeToUse.Areas.Count равно 3, поэтому первые две строки кода уменьшаются до For i = 1 до 3 и For j = i + 1 до 3. Для i = 1, j = 2 Excel VBA сравнивает все значения первой области. со всеми значениями второй области. Для i = 1, j = 3 Excel VBA сравнивает все значения первой области со всеми значениями третьей области. Для i = 2, j = 3 Excel VBA сравнивает все значения второй области со всеми значениями третьей области. Если значения совпадают, для цвета фона обеих ячеек устанавливается значение «Без заливки», поскольку они не уникальны.

функция суммы не работает в Excel

Результат при нажатии кнопки команды на листе:

Сравнить результаты диапазонов

14/14 Завершен! Узнать больше об объекте диапазона>
Перейти к следующей главе: Переменные



^