На этом шаге мы рассмотрим механизм удаления повторяющихся данных.
Повторяющаяся информация в табличной базе данных на листе База при автоматической обработке информации может иметь неоднозначное толкование. Если указаны названия НП, а расстояния между ними различны, то функция ВПР выберет и укажет первое встретившееся ей значение. А, следовательно, присутствует возможность получения ошибочной информации.
Поэтому при двух одинаковых записях в списке, одно из них нужно удалить.
Самый оптимальный вариант, нажав кнопку База>>, перейти на лист База и, выполнив команду Данные | Форма, вызвать диалоговое окно Форма.
Для того чтобы не проделывать каждый раз вручную эту трудоемкую операцию по вызову диалогового окна Форма перед переходом на лист База, запишите макрос выполнения этой операции. Но здесь может ожидать неудача:
Рис.1. Диалоговое окно о невозможности вызова диалогового окна Форма
Для записи макроса по вызову диалогового окна Форма, выполните следующую последовательность действий:
Рис.2. Диалоговое окно Форма со списком База
В последующем в тексте кода VBA макроса можно будет удалить строку ссылки на активизацию ячейки. Важно, чтобы в нем осталась строка вызова диалогового окна Форма (рисунок 3) после активизации листа База:
ActiveSheet.ShowDataForm
Рис.3. Подпрограмма УдалениеПовторений для вызова диалогового окна Форма
Диалоговое окно Форма (в нашем примере оно называется по имени листа - База) предназначено для облегчения труда при работе со списками. В полях диалогового окна указано наименование каждого заголовка списка, данные, введенные в поля, могут редактироваться с последующим присвоением ячейкам списка этих значений. Если в каком-либо поле списка находится формула, то это поле будет показано на сером фоне и редакции не поддается.
В правом верхнем углу диалогового окна находится индикатор, показывающий общее число записей в списке и порядковый номер расположения выбранной записи. Просмотр списка можно осуществлять с помощью кнопок Назад и Далее, или с помощью полосы прокрутки. При нажатии на кнопку Добавить происходит добавление новой записи, которая размещается в конце списка, а с помощью кнопки Удалить - удаление выбранной записи.
Если добавление новых записей в нашем приложении осуществляется в автоматическом режиме, то удаление записи желательно проводить с помощью диалогового окна Форма.
Для быстрого поиска строки, содержащей повторяющуюся запись, которую нужно удалить (рисунок 4) в диалоговом окне Форма нажмите на кнопку Критерии. Диалоговое окно Форма обновится.
Рис.4. Фрагмент рабочего листа Города с обнаруженным списком повторений
Для поиска необходимой записи в поле, по которому будет происходить поиск, введите первые символы текста названия НП (рисунок 5) и после нажатия на кнопку Правка нажмите кнопку Далее.
Рис.5. Диалоговое окно Форма с внесенными первыми символами поиска записи
С помощью диалогового окна Форма произойдет фильтрация списка, по введенным символам и при необходимости удаления выбранной записи, нажмите на кнопку Удалить (рисунок 2).
При возникновении предупреждающего диалогового окна Excel (рисунок 6) подтвердите действие удаления записи нажатием на кнопку ОК.
Рис.6. Диалоговое окно Excel с предупреждением об удалении записи из списка
Удаление записи при помощи диалогового окна Форма имеет преимущество перед удалением или очисткой строк, содержащими запись, при помощи команд Правка | Очистить или Правка | Удалить.
В первом случае могут измениться формулы, в которых указаны ссылки на диапазон ячеек списка. Во втором случае список перестает быть списком, потому что теряет свои качества.
Со следующего шага мы начнем рассматривать рабочий лист Ввод.