В Excel у меня есть одна таблица GlobalConfig, в которой я могу указать, какие поля в других электронных таблицах должны быть заполнены целочисленным, логическим значением или значением даты. Например,
Снимок экрана
Теперь я попытался с помощью VBA проверить данные, которые выбирают электронную таблицу и столбец, задают их как диапазон и проверяют, все ли поля в этомстолбцы заполняются ожидаемым значением данных, например, целое число. Эта проверка будет вызвана кнопкой действия. Если поле также помечено как обязательное, оно также будет проверено, если оно пустое или нет.
Пример проверки целочисленного значения:
With Range("XY").Validation
.Add Type:=xlValidateWholeNumber, _
AlertStyle:= xlValidAlertStop, _
Operator:=xlBetween, Formula1:="0", Formula2:="99"
.InputTitle = "Integers"
.ErrorTitle = "Integers"
.InputMessage = "Enter an integer"
.ErrorMessage = "You must enter integer value in Field X in Column Y"
End With
Пример проверки пустого поля:
Worksheets("Sheet1").Range("A1").Sort _
key1:=Worksheets("Sheet1").Range("A1")
Set currentCell = Worksheets("Sheet1").Range("A1")
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
currentCell.EntireRow.Delete
End If
Set currentCell = nextCell
Loop