Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Function return a Date, wrong format
Excel 2000 problem:
When putting in a cell a formula referring to a custom VBA function, that returns a date or variant/date, the result is formatted as a number. When putting in a cell a std function like =TODAY(), the result is formatted as a date. Questions: does this problem occur in higher versions of Excel as well, and is there maybe some way around? I already tried to return a Variant/String containing the preformatted date, but Excel does not recognize result as a date 'Results in the number "37987" appearing in the cell Public Function TestDateFormat1() As Date TestDateFormat1 = Date 'Returns the current system date End Function 'Results in the number "37987" appearing in the cell Public Function TestDateFormat2() As Variant TestDateFormat2 = Date End Function 'Results in 37987 in the cell 'Results in a left aligned string "2004/01/01" in the cell Public Function TestDateFormat3() As Variant TestDateFormat3 = Format(Date, "yyyy/mm/dd") End Function Many thanks --- Message posted from http://www.ExcelForum.com/ |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Function return a Date, wrong format
When VBA returns a value to XL, it is parsed much like it would be
if you typed the result in by hand - the format displayed will be the format of the cell, not of the entry. Instead of formatting the result, just format the cell. In article , kvdwerf wrote: Excel 2000 problem: When putting in a cell a formula referring to a custom VBA function, that returns a date or variant/date, the result is formatted as a number. When putting in a cell a std function like =TODAY(), the result is formatted as a date. Questions: does this problem occur in higher versions of Excel as well, and is there maybe some way around? I already tried to return a Variant/String containing the preformatted date, but Excel does not recognize result as a date 'Results in the number "37987" appearing in the cell Public Function TestDateFormat1() As Date TestDateFormat1 = Date 'Returns the current system date End Function 'Results in the number "37987" appearing in the cell Public Function TestDateFormat2() As Variant TestDateFormat2 = Date End Function 'Results in 37987 in the cell 'Results in a left aligned string "2004/01/01" in the cell Public Function TestDateFormat3() As Variant TestDateFormat3 = Format(Date, "yyyy/mm/dd") End Function Many thanks --- Message posted from http://www.ExcelForum.com/ |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Function return a Date, wrong format
Thanks.
But this definitely is not sufficient. Try this in a cell =TestNestedDateFunction(TestDateFormat1()), with Public Function TestNestedDateFunction(value As Variant) As String TestNestedDateFunction = IIf(IsDate(value), "IsDate", "No IsDate") End Function This results in a "Not IsDate", except for the third variant TestDateFormat3. And I really need an IsDate outcome, as well as a Date-value resultin from a TestDateFormatX-cal -- Message posted from http://www.ExcelForum.com |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
from date format convert to text format is wrong | Excel Discussion (Misc queries) | |||
date in wrong format | New Users to Excel | |||
Date in wrong format | Excel Discussion (Misc queries) | |||
Wrong date format in header | Excel Discussion (Misc queries) | |||
YYYY format displaying wrong date | Excel Discussion (Misc queries) |