? 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
"sbvb" <sbvb.1r4tez_1119618345.9194@excelforum-nospam.com> wrote in message
news:sbvb.1r4tez_1119618345.9194@excelforum-nospam.com...
>
> 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
>
>
> --
> sbvb
> ------------------------------------------------------------------------
> sbvb's Profile:
http://www.excelforum.com/member.php...o&userid=24604
> View this thread: http://www.excelforum.com/showthread...hreadid=381924
>
Bookmarks