【问题标题】:VBA Check For Missing Data for Dymanic RangeVBA 检查动态范围的缺失数据
【发布时间】:2014-08-27 17:41:53
【问题描述】:

我一直在弄清楚如何为项目的此数据库页面创建动态范围,以在保存工作簿之前检查阶段数据是否丢失。数据库页面将继续增长,并且不确定如何使这个范围动态化。

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

【问题讨论】:

  • 取决于用户如何调用和/或使用它。

标签: excel dynamic-data missing-data before-save vba


【解决方案1】:

这将为您提供有关丢失物品的完整故事:

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

【讨论】:

  • 这两项工作都很棒 - 谢谢。我注意到的唯一问题是,如果最后一行的该列中缺少数据,它就无法识别它。
  • 我是 Excel 中的 VBA 新手,非常感谢您的帮助。
  • 我在计算 N 的行中添加了一个 +1
  • 就这样?我以为会更复杂。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 2019-06-16
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
相关资源
最近更新 更多