Formatting variable problem

S

Spike

I have a problem formatting a variable.
if i place the following in a sub the variable value does not change; it
stays as "dd/mm/yy"

dim datCFwd as date
datCFwd = Sheets("Model").Range("Model_AccountingEnd").Value
datCFwd = Format(datCFwd, "dd mmm yy")

however if i pass this variable to another sub and run the same formatting
code the variable is changed to how i want it.

The Range("Model_AccountingEnd") is formatted as a Custom format "dd-mmm-yy"
and it does appear in this format on the relevant sheet.

if anyone has any ideas why this should be i will be very interested
 
R

Rick Rothstein

You are assigning your value to a variable that is declared as a Date...
Date values do not have format... they are just dates. VB stores dates in a
Double as a whole number offset from "date zero" (which is December 30,
1899); and if there is a time value in your date, it is stored as the
fraction of a 24-hour day in the decimal portion of the Double. The
formatting of a Date variable is solely for the user's benefit and declaring
a variable as a Date just tells VB that when it displays the value to a
human, make it look like the human wants it to look. You can see this easily
enough by executing this line of code in the Immediate Window...

? Now, CDbl(Now)
 
O

OssieMac

Hi Spike,

You have declared datCFwd as date. Dates are actually stored as a numeric
value. Format function returns a string so you should dimension a string
variable for it.

Dim datCFwd as Date
Dim strDatCFwd as String

datCFwd = Sheets("Model").Range("Model_AccountingEnd").Value
strDatCFwd = Format(datCFwd, "dd mmm yy")
 

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