wrong date returned on ws.Cells(r,c).value

  • Thread starter Thread starter sbvb
  • Start date Start date
S

sbvb

I have writen a vb6 app that extracts user-entered data from a
spreadsheet and loads it into an oracle database. It all works fine
apart from some of the date values in the spreadsheet being returned
incorrectly.

For example when debugging the var strRowValue in the code snippet
below,
01/01/1900 00:00 in the spreadsheet is returned as 31/12/1889
02/01/1900 00:00 in the spreadsheet is returned as 31/01/1900
01/05/2005 is correctly returned

Set ws = wb.Worksheets(UCase(strTables(i)))
strRowValue = ws.Cells(iRow, iCol).Value

The spreadsheet uses the 1900 system and the format of the cells that
the dates are held in is "Custom - 'dd/mm/yyyy hh:mm'"

Any ideas would be very appreciated.

Shawn
 
? cdate(ActiveCell.Value)
12/31/1899
? ActiveCell.Text
01/01/1900 0:00

not 1889

Excel only supports dates in the 20th century and later (VBA/VB is
different). It counted 1900 as a leap year (supposedly to be compatible
with a similar error in Lotus 1-2-3). so date prior to 1 Mar 1900 are off by
one.
 
Yes 1899, typo..
Thanks Tom that's sorted it out

Tom said:
? cdate(ActiveCell.Value)
12/31/1899
? ActiveCell.Text
01/01/1900 0:00

not 1889

Excel only supports dates in the 20th century and later (VBA/VB is
different). It counted 1900 as a leap year (supposedly to be
compatible
with a similar error in Lotus 1-2-3). so date prior to 1 Mar 1900 are
off by
one.

--
Regards,
Tom Ogilvy


message
 
Back
Top