0

Excel(2003/2007)に5つの列(SNO、Name、Phone、Address、Pin)があります。
Excelには「n」を付けることができます。レコードの。
検証を適用して、Excelシートを保存するときに、いずれかの(Name、Phone、Address、Pin)列に値がある場合に、「SNO」(整数値を含む)列の値が空にならないようにします。
そうでない場合は、エラーメッセージが表示されます。
データを手動で入力しています。
私が試した:
編集:

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

コードを記述せずに検証を適用できますか?

4

1 に答える 1

0

私が知る限り、VBAがこれを行うための最良の(唯一の?)方法です。

試す

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
于 2012-08-22T05:42:23.430 に答える