【发布时间】:2015-07-12 02:59:47
【问题描述】:
我需要帮助来构建一个基本上会显示一个消息框的代码,该消息框将充当各种错误消息或通知消息。这是我想的一个示例代码,我知道它会起作用,但不完全是我正在寻找的输出
lr = Sheet1.Cells(Rows.Count, 1).End(xlUP).Row
for a = 1 to lr
if Sheet1.Cells(a,1) = Date then
` A whole new set of codes here that's not really an issue so i'll save time and just skip writing it down
else MsgBox "No Data for Today!"
end if
next a
我知道这会起作用并显示一个带有“今天没有数据!”字样的 msgbox,但问题是,每次 for 循环进行另一遍时,它都会再次显示 msgbox。我想要发生的是它应该只显示 msgbox ONCE 并且只有在它检查了所有单元格并验证这些单元格上的数据不等于当前日期之后。
任何帮助将不胜感激。 :)
编辑:
只是对我想要实现的目标的简要说明。所以基本上,我提供的代码会检查 A 列的每一行,以确定其中的数据是否等于当前日期?所以我想要发生的是,我不想检查该范围内的所有单元格并显示一个 MsgBox 如果该范围内的单元格没有等于当前日期,并且如果它们等于当前日期,那么它不应该显示 MsgBox。我尝试从@JGreenwell 运行下面的代码,如果单元格范围内的所有数据不等于当前日期,它确实显示了正确的 MsgBox,但是,如果我在等于当前日期的范围内添加数据,即使至少有一个数据等于当前日期,它仍会显示 msgbox。
我希望这比我原来的问题更清楚。我真的很感谢你们告诉我的所有提示/建议/帮助。 :)
Dim dataFlag As Boolean
dataFlag = False 'create and set boolean type flag
for a = 1 to lr
if Sheet1.Cells(a,1) = Date then
' A whole new set of codes here that's not really an issue so i'll save time and just skip writing it down
else
dataFlag = True
end if
next a
If dataFlag Then
MsgBox "No Data for Today!"
End If
【问题讨论】:
标签: vba excel if-statement for-loop