【发布时间】:2014-05-14 23:11:49
【问题描述】:
我正在尝试在 Excel 上制作一个表格,这样当人们不填写某些单元格时,他们会收到弹出错误消息。到目前为止,我制作了这段代码:
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 添加文本时,无论如何都会弹出“请输入所需日期”消息框。
我也尝试过使用 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
但我需要一个已定义的函数,但我不知道该选择什么。如果他们在第一个单元格中选择“是”,是否有更长的方法来确保两个单元格都被填写?
【问题讨论】:
-
I8是什么?那不应该是Range("I8")还是一个控件名称 -
您可以尝试查看此答案:Thread。希望这会有所帮助。
-
如果
I8是一个单元格/范围,那么每个@mehow 应该是If Len(Range("I8").Value) = 0 ...。干杯。 -
您可能还想将
Option Explicit作为所有代码的第一行 - 您尝试运行它时会立即标记此错误 -
这是做什么的?我只是在
If Len(Range("I8")) = 0 Then行上方的行上写Option Explicit吗?
标签: excel vba cell isnullorempty