在dataGrid中填写"20030501",在befoeColUpdate()事件中对填写的数进行分拆为"2003-05-01"后,对该单元格进行重新更新C.value=cdate("2003-05-01)时,出现错误,而且错误无法捕捉。程序如下:
Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)
Dim C
Dim sday As String, smonth As String, syear As String
Dim Cfield As String
Dim DD As Variant
Dim sc As Variant
Dim i As Long
Set C = DataGrid1.Columns(ColIndex)
'DataGrid1.Columns(1).CellValue()sc = DataGrid1.Columns(ColIndex).ValueIf IsNull(DataGrid1.Columns(ColIndex).Value) Then Exit SubCfield = C.DataField
If Cfield = "起始日期" Or Cfield = "到期日期" Then
  '  sc = Trim(C.Text)
    If IsDate(sc) Then Exit Sub
    C.Text = ""
   i = Len(sc)
   If IsNumeric(sc) Then
       sday = Right$(sc, 2)
       sc = Mid$(sc, 1, i - 2)
       smonth = Right(sc, 2)
       i = Len(sc)
       syear = Mid$(sc, 1, i - 2)
       sc = syear & "/" & smonth & "/" & sday
       If IsDate(sc) Then
            c.value= CDate(sc)  '出错
       Else
            MsgBox "输入错误!日期的格式:yyyy-mm-dd,请重新输入.", vbOKOnly + vbInformation, "输入提示"
            'Cancel = True
            Exit Sub
       End If
    Else
       MsgBox "输入错误。日期的格式::yyyy-mm-dd,请重新输入.", vbOKOnly + vbInformation, "输入提示"
       'Cancel = True
       Exit Sub
    End If
End If
End Sub