【问题标题】:Applying date validation to Excel cell from VB.Net从 VB.Net 将日期验证应用于 Excel 单元格
【发布时间】:2012-01-27 13:33:22
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net vb.net excel


    【解决方案1】:

    Excel 将日期存储为连续日期(自 1900 年 1 月 0 日以来的天数),因此如果您将 77777 天添加到该日期,您将获得一个有效日期。 2112 年 12 月 10 日

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

    我发现这里有几个链接对 Excel 中的日期/时间很有用。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多