【发布时间】:2017-05-26 18:25:28
【问题描述】:
好吧,请耐心等待,我对 Excel 中的 VBA 很陌生。几天来,我一直试图弄清楚如何循环输入我为错误检查而制作的时间表,我只是傻眼了。
我的时间表看起来像这样
所以我一直试图让一个循环来寻找空单元格。
我的范围是 ("C4:I4") 并且我需要在从 C4 开始的 29 行上运行它。
- 如果某一行在该范围内的每个单元格中都有数据,那么我希望将它发送到
GoTo 500。 - 如果一行有任何单元格中的数据但未全部填写,我需要它显示一个
MsgBox来告诉用户需要填写什么。 - 如果除第一个之外的一行中的整个范围为空,那么我需要
GoTo 500来运行代码的保存文件部分。
任何帮助将不胜感激。我浏览了论坛并试图让多个循环示例为我工作,但一直无法做到。
Sub checkemptycells()
Dim x As String
Range("C1").Select
If ActiveCell.Text = "" Then
MsgBox "Pick Your Name"
GoTo 1000
End If
Range("G1").Select
If ActiveCell.Text = "" Then
MsgBox "ENTER A DATE"
GoTo 1000
End If
Range("C4").Select
If ActiveCell.Text = "" Then
MsgBox "Need Job#"
GoTo 1000
End If
Range("D4").Select
If ActiveCell.Text = "" Then
MsgBox "need qty."
GoTo 1000
End If
Range("E4").Select
If ActiveCell.Text = "" Then
MsgBox "Need Work Order!"
GoTo 1000
End If
Range("F4").Select
If ActiveCell.Text = "" Then
MsgBox "Pick a Dept.!"
GoTo 1000
End If
Range("G4:I4").Select
If ActiveCell.Text = "" Then
MsgBox "Fill Start & Stop times on this line"
GoTo 1000
End If
Dim FilePath As String
Dim FileName As String
Dim MyDate As String
Dim USER As String
FilePath = "Z:\TIMESHEETS\"
MyDate = Format(Now(), "mm_dd_yyyy_")
USER = (ActiveSheet.Range(" C1"))
FileName = FilePath & MyDate & USER
ActiveWorkbook.SaveAs FileName:=FileName, FileFormat:=xlWorkbookNormal
ActiveWorkbook.Close
OpenAfterPublish = False
xls.DisplayAlerts = False
1000
End Sub
【问题讨论】: