2012-01-27 6 views
1

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 

문제점 :

I 그것이 메시지 Enter Valid Date를 도시 정확하게 검증되지만, 4 자리 정수 7777 입력 I은 5 자리 77777이 값을 받아들이고 12/10/2112 값으로 변환하여 표시되지 들어가면 오류 메시지.

여기서 원하는 것은 셀 값을 날짜 형식 mm/dd/yyyy으로 유효성을 검사하려는 것입니다.

알려주세요. 올바른 방법으로 가고 있습니까?

답변

1

Excel은 날짜를 직렬 날짜 (1900 년 1 월 1 일 이후의 일 수)로 저장하므로 77777 일을 더하여 해당 날짜에 추가하면 유효한 날짜가 표시됩니다. 12/10/2112

정확히 어떻게 입력을 특정 형식으로 강요하고 싶은지 정확히 수행 할 수 있는지 확신 할 수 없습니다. (날짜 컨트롤을 사용하지 않고) 그러나 그것이 적어도 이유입니다.

여기에 Excel에서 날짜/시간과 함께 유용하게 사용 된 몇 가지 링크가 있습니다.

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

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