Как сделать конкретную ячейку обязательной в Excel 2010 - PullRequest
0 голосов
/ 24 ноября 2011

Привет всем, я дам Excel Document для пользователя с некоторой базовой информацией следующим образом:

enter image description here

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

Я ссылался на некоторые статьи

Но я не могу добиться того, что мне нужно, такМожет ли кто-нибудь помочь.Также я хотел бы знать, возможно ли применить Regular expression validators с помощью Excel.Что-то вроде Date format должно быть mm/dd/yyyy, а SSN должно быть 9 digited вот так ..

Я пробовал что-то подобное, но это не подсказало мне error or Dialog

Private Sub Worksheet_BeforeSave(Cancel As Boolean)
If Sheet1.Range("A3:B3").Value = "" Then
Application.EnableEvents = True
MsgBox "Cannot print until required cells have been completed!"
Cancel = True      
End If   
End Sub

Ответы [ 2 ]

3 голосов
/ 24 ноября 2011

Часть 1

Этот код имеет несколько проблем

  1. Вам необходимо событие Workbook - событие WorkSheet_BeforeSave отсутствует
  2. Невозможно выполнить тестирование для двухпустые ячейки с Sheet1.Range("A3:B3").Value = ""
  3. Если код выполняется, то события уже включены, поэтому эта строка Application.EnableEvents = True является избыточной

Что-то похожее на этот тест для A3 и B3:непустое на крайнем левом листе

{код входит в модуль ThisWorkbook}

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If Application.WorksheetFunction.CountA(Sheets(1).Range("a3:b3")) <> 2 Then
        MsgBox "Cannot print until required cells have been completed!"
        Cancel = True
    End If
End Sub

Хотя вы можете использовать Regex для части 2, проверка простых данных должна работать нормально, т.е.

a) Вы можете использовать «разрешенную» дату при проверке данных

b) Вы можете использовать Целое число от 100 000 000 до 999 999 999 для 9-значного числа

1 голос
/ 24 ноября 2011

Ответ на часть 2 (вещь регулярного выражения)

Вы можете написать пользовательскую функцию в VBA и использовать ее в Excel. Вот пример , который извлекает части строки с помощью RegEx, но с небольшой настройкой вы можете использовать его для проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...