2012-01-27 13 views
1

我正在將應用日期驗證從VB.NET應用於excel單元格(範圍)。從VB.Net向Excel單元格應用日期驗證

Private Sub DateValidExcelRule(ByVal worksheet As SpreadsheetGear.IWorksheet, ByVal DateRange As String) 

    Dim dt As Date = CDate("1/1/1900") 
    worksheet.Range(DateRange).Validation.Delete() 
    worksheet.Range(DateRange).Validation.Add(ValidationType.Date, ValidationAlertStyle.Stop, ValidationOperator.Greater, dt, Nothing) 
    worksheet.Range(DateRange).NumberFormat = "mm/dd/yyyy" 
    worksheet.Range(DateRange).Validation.IgnoreBlank = True 
    worksheet.Range(DateRange).Validation.InputTitle = "Excel Validation" 
    worksheet.Range(DateRange).Validation.ErrorTitle = "Error in Date" 
    worksheet.Range(DateRange).Validation.InputMessage = "Note: only date values here" 
    worksheet.Range(DateRange).Validation.ErrorMessage = "Enter valid Date" 
    worksheet.Range(DateRange).Validation.ShowInputMessage = True 
    worksheet.Range(DateRange).Validation.ShowError = True 

End Sub 

問題:

當我輸入4個位數的整數7777它被驗證正確地示出消息Enter Valid Date,但是當我進入5個位數77777它被接受的值並將其轉換爲12/10/2112值和未示出任何錯誤消息。

在這裏,我想要做的是我想驗證單元格值爲任何日期格式mm/dd/yyyy

請讓我知道,我會以正確的方式嗎?

回答

1

Excel將日期存儲爲序列日期(自1/0/1900以來的天數),因此如果您採取77777天並將其添加到該日期,則會開始您獲得有效日期。 12/10/2112

我不知道如何或甚至是否可以完全實現您希望強制輸入爲excel中的特定格式。 (不使用日期控制)但這就是至少。

這裏有一些鏈接,我發現在Excel中的日期/時間是有用的。

http://www.cpearson.com/excel/datetime.htm

http://dmcritchie.mvps.org/excel/datetime.htm