将datevalidation应用于VB.Net中的Excel单元格

我正在使用datevalidation来优化从VB.NET单元格(范围)。

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 

问题:

当我input4位整数7777它正在validation正确显示消息Enter Valid Date ,但是当我input5位数字时77777正在接受该值并将其转换为12/10/2112值并且不显示任何错误消息。

在这里,我想要做的是我想validation单元格的值为任何date格式mm/dd/yyyy

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

Excel将date存储为序列date(自1/0/1900以来的天数),所以如果您花费77777天并将其添加到该date,则会开始获得有效的date。 2112年12月10日

我不知道如何甚至是否可以完成你想强制input在Excel中的特定格式。 (不使用date控制)但是这是至less。

这里有几个链接,我发现有用的date/时间在Excel中。

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

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