2012-08-22 40 views
0

我在excel(2003/2007)中有5列(SNO,Name,Phone,Address,Pin)。
Excel可以有「n」號。的記錄。
我想要應用一個驗證,以便當我們保存Excel表格時,當任何一個(名稱,電話,地址,引腳)列有「SNO」(包含整數值)列時,值永遠不會爲空值。
如果情況並非如此,那麼應該會出現錯誤消息。
我正在手動輸入數據。
我想:
編輯:在microsoft excel上必需​​的字段驗證

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 

我們可以應用驗證,而無需編寫代碼?

+0

@ brettdj/brettdjI已經編輯我的問題,與我付出努力。 –

回答

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