从VB.Net向Excel单元格应用日期验证

问题描述:

我正在将应用日期验证从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

请让我知道,我会以正确的方式吗?

Excel将日期存储为序列日期(自1/0/1900以来的天数),因此如果您采取77777天并将其添加到该日期,则会开始您获得有效日期。 12/10/2112

我不知道如何或甚至是否可以完全实现您希望强制输入为excel中的特定格式。 (不使用日期控制)但这就是至少。

这里有一些链接,我发现在Excel中的日期/时间是有用的。

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

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