正在从VB.Net对Excel单元格应用日期验证

本文关键字:单元格 应用 日期 验证 Excel VB Net | 更新日期: 2023-09-27 18:21:51

我正在从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

请告诉我,我走的路对吗?

正在从VB.Net对Excel单元格应用日期验证

Excel将日期存储为序列日期(自1900年1月0日以来的天数),因此如果您使用77777天并将其添加到该日期中,则会得到一个有效日期。2112年10月12日

我不确定你如何,甚至是否可以完成你想要的,强制输入excel中的特定格式。(没有使用日期控件)但这至少是原因。

以下是我发现在excel中对日期/时间有用的几个链接。

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

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

相关文章: