2014-08-27 101 views
0

我一直在搞清楚如何为项目检查阶段数据在保存工作簿之前是否缺少动态范围。数据库页面将继续增长并且不确定如何使这个范围动态化。VBA检查Dymanic范围缺失数据

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
Dim rsave As Range 
Dim cell As Range 

Sheets("Database").Select 

Set rsave = Range("a7:a125") 

For Each cell In rsave 
If cell = "" Then 
    Dim missdata 
    missdata = MsgBox("Missing Phase Data", vbOKOnly, "Missing Phase Data") 
    Cancel = True 
    cell.Select 
    Exit For 
End If 
Next cell 
End Sub 
+0

取决于它是怎样被称为和/或用户使用。 – RBarryYoung 2014-08-27 17:50:53

回答

0

这会给你完整的故事上遗失物品:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    Dim msg As String, N As Long, cl As Range 
    N = Cells(Rows.Count, 1).End(xlUp).Row +1 
    Dim r As Range 
    Set r = Range("A7:A" & N) 
    For Each cl In r 
     If cl.Value = "" Then 
      msg = msg & vbCrLf & cl.Address(0, 0) 
     End If 
    Next cl 
    If msg = "" Then Exit Sub 
     MsgBox msg 
     Cancel = True 
End Sub 
+0

这两个工作很好 - 谢谢。我注意到的唯一问题是,如果在最后一行的该列中有数据缺失,则无法识别它。 – 2014-08-27 19:16:31

+0

我应该修复代码吗? – 2014-08-27 19:50:49

+0

我对Excel中的VBA相当新,我非常感谢帮助。 – 2014-08-27 20:17:26