Я пытаюсь создать форму на excel, чтобы, когда люди не заполняют определенные ячейки, они получат всплывающие сообщения об ошибках. До сих пор я сделал этот код:Как проверить, является ли ячейка пустой с помощью VBA
If Len(I8) = 0 Then
MsgBox "Please enter Required Date", vbExclamation
Exit Sub
ElseIf Len(D11) = 0 Then
MsgBox "Please enter your name", vbExclamation
Exit Sub
ElseIf Len(H11) = 0 Then
MsgBox "Please enter Work Phone", vbExclamation
Exit Sub
ElseIf Len(L11) = 0 Then
MsgBox "Please enter Home Phone", vbExclamation
Exit Sub
End If
MsgBox "All mandatory fields have been entered", vbExclamation
End Sub
который, казалось, работать, но когда я добавил текст в ячейке I8
, то «Пожалуйста, введите нужную дату» MsgBox выскочило в любом случае.
Я также пробовал использовать Count(I8) = 0
и IfEmpty(I8) = True
, но ни один из них не был признан должным образом в vba.
Кроме того, если я хочу, чтобы всплывающее сообщение появлялось, когда ячейка не заполнена, если они выбрали «ДА» из раскрывающегося списка, какова будет функция? До сих пор я написал
ElseIf Range("D28") = "P16" And Len(Range("M30")) = 0 Then
MsgBox "Please Select whether this file is classified as confidential", vbExclamation
Exit Sub
Но мне нужна определенная функция, и я не уверен, что выбрать. Есть ли более длинный способ сделать это, чтобы обе ячейки заполнились, если они выбрали yes в первой ячейке?
Что такое 'I8'? Не должно быть 'Range (« I8 »)' возможно или является именем управления –
Вы можете попробовать проверить этот ответ: [Thread] (http://stackoverflow.com/questions/13360651/excel-how-to -check-если-а-клеток является пустым-с-УВОЙ). Надеюсь это поможет. – Weava
Если 'I8' является ячейкой/диапазоном, то это должно быть' If Len (Range ("I8"). Value) = 0 ... 'per @mehow. Приветствия. –