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

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
 
T

Tom Ogilvy

? 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.
 
S

sbvb

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top