microsoft excel上的必填字段验证

microsoft excel上的必填字段验证,excel,excel-2007,excel-2003,vba,Excel,Excel 2007,Excel 2003,Vba,我在excel(2003/2007)中有5列(SNO、姓名、电话、地址、Pin)。 Excel可以有“n”个记录。 我想应用一个验证,以便在保存excel工作表时,当任何一列(姓名、电话、地址、Pin)都有值时,“SNO”(包含整数值)列的值不应为空。 如果情况并非如此,则会出现错误消息。 我正在手动输入数据。 我试过: 编辑: 我们可以在不编写代码的情况下应用验证吗?据我所知,VBA是最好(唯一)的方法 试一试 Private子工作簿\u关闭前(取消为布尔值) 变暗rng As范围 变暗rw

我在excel(2003/2007)中有5列(SNO、姓名、电话、地址、Pin)。
Excel可以有“n”个记录。
我想应用一个验证,以便在保存excel工作表时,当任何一列(姓名、电话、地址、Pin)都有值时,“SNO”(包含整数值)列的值不应为空。
如果情况并非如此,则会出现错误消息。
我正在手动输入数据。
我试过:
编辑:


我们可以在不编写代码的情况下应用验证吗?

据我所知,VBA是最好(唯一)的方法

试一试

Private子工作簿\u关闭前(取消为布尔值)
变暗rng As范围
变暗rw As范围
Dim dat作为变量
'更改为您的工作表名称
带工作表(“表4”)
'获取要检查的数据范围
'假定SNO为A列,名称etc为B至E列
设置rng=.Range(.UsedRange.Columns(1),.UsedRange.Columns(5))
对于rng.行中的每个rw
'如果SNO单元为空
如果rw.Cells(1,1)=“”,则
'检查其他单元格是否为空
dat=Join(Application.Transpose(Application.Transpose(rw.Value)))
如果dat为“”,则
MsgBox“您必须填写SNO。”
取消=真
退出
如果结束
如果结束
下一个
以
端接头

@brettdj/brettdjI经过我的努力,编辑了我的问题。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Worksheets("Sheet1").Range("SNO").Value = "" Then
        MsgBox "You must fill in SNO."
        Cancel = True
    End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim rng As Range
    Dim rw As Range
    Dim dat As Variant

    ' change to your sheet name
    With Worksheets("Sheet4")
        ' Get data range to check
        ' Assumes SNO is column A and Name etc is Column B to E
        Set rng = .Range(.UsedRange.Columns(1), .UsedRange.Columns(5))
        For Each rw In rng.Rows
            ' If SNO cell is empty
            If rw.Cells(1, 1) = "" Then
                ' Check if other cells are not blank
                dat = Join(Application.Transpose(Application.Transpose(rw.Value)))
                If dat <> "" Then
                    MsgBox "You must fill in SNO."
                    Cancel = True
                    Exit For
                End If
            End If
        Next
    End With
End Sub