Запись уникального имени, дубль два (Microsoft Excel)
Крис использует метод проверки данных, который успешно предотвращает ввод неуникальной информации в столбец. (Этот метод был описан в предыдущих выпусках ExcelTips.) Он справедливо отмечает, что проблема с проверкой данных все еще существует: кто-то может вставить информацию в ячейку и успешно обойти все проверки на месте.
Например, если вы наберете «Джордж» в ячейке A8, а затем «Джордж»
в A9 обычная проверка данных вызовет ошибку, как и следовало ожидать, указывая на то, что значение, которое вы пытаетесь ввести, не является уникальным.
Однако, если вы введете «Джордж» в ячейку A8, скопируете эту ячейку и вставите ее в ячейку A9, ошибка проверки данных не возникнет — вставка разрешена.
В Excel нет прямого способа обойти это. Однако вы можете заставить Excel выполнять некоторую проверку всякий раз, когда вы пытаетесь вставить. Рассмотрим следующий макрос:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next For Each TmpRng In Target TmpVal = TmpRng.Validation.Type If TmpVal > 0 Then If Application.CutCopyMode = 1 Then MsgBox "You cannot paste into validated cells." Application.CutCopyMode = False Exit Sub End If End If Next End Sub
Этот макрос запускается только при изменении выделения на листе. (Этот код должен находиться в окне кода для рабочего листа.) Он проверяет целевые ячейки (те, которые выбираются), и если пользователь пытается вставить в ячейку, в которой активна проверка, он не разрешит это.
Далее пользователь увидит диалоговое окно, указывающее на ошибку.
Обратите внимание, что эта процедура просто проверяет, выполняется ли вставка в ячейку с подтвержденными данными. Если да, то генерируется ошибка.
Подпрограмма не проверяет, действительно ли то, что вставляется, допустимо в соответствии с правилами проверки в целевых ячейках; это было бы намного сложнее и потребовало бы немного большего количества кода.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2449) применим к Microsoft Excel 97, 2000, 2002 и 2003.