我正在将日期验证应用于来自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
。
请告诉我,我走的路对吗?
发布于 2012-01-27 13:50:35
Excel将日期存储为序列日期(自1900年1月1日以来的天数),因此,如果将77777天与开始日期相加,则得到一个有效的日期。12/10/2112
我不确定您如何甚至是否可以准确地完成您想要的,强制输入在excel中采用特定的格式。(不使用日期控件),但这至少是原因。
这里有几个我发现对excel中的日期/时间很有用的链接。
https://stackoverflow.com/questions/9033995
复制相似问题