На этом шаге мы алгоритм поиска повторяющихся записей.
Отсутствие названий НП и расстояния между ними на рабочем листе База довольно легко обнаружить. Например, при изменении названия НП в ячейках D2 и Е2 на листе Города формула в ячейке G2 возвратит ошибку. Повторяющиеся же данные на листе База могут привести в будущем к ошибке. Рассмотрим алгоритм поиска повторяющихся записей на этом рабочем листе.
Для поиска повторяющихся записей на листе База (например, предполагаем что их будет не больше десяти) выполните следующую последовательность действий:
=ЕСЛИ(C2=C3;C2;0)
Для записи макроса выполните указанную последовательность действий, после чего отредактируйте код VBA подпрограммы, как показано на рисунке 1 в записанном макросе ПроверкаПовторения.
Рис.1. Подпрограмма ПроверкаПовторения
Обратите внимание на две последние строки выполняемой последовательности: при механическом выполнении процедуры и как это реализовано в тексте подпрограммы ПроверкаПовторения. После копирования диапазона ячеек F2:F11 на листе База и для вставки этих данных на лист Города, лист Города не активизируется, а выполнение всей операции записано в одной строке, в которой указан адрес вставки с указанием имени листа. Лист Города активизируется уже после очистки содержимого области проведенных промежуточных вычислений (столбец F) на листе База.
Если при выполнении подпрограммы будут обнаружены повторяющиеся записи, то список из десяти повторяющихся названий НП отобразится на листе Города (рисунок 2).
Рис.2. Фрагмент рабочего листа Города с обнаруженным списком повторений
На следующем шаге мы рассмотрим поиск и удаление повторяющихся данных на листе База.