UDF返回格式化的数字

Gre*_*edo 1 excel vba excel-vba user-defined-functions udf

有时我喜欢在同一个单元格中显示数字和文本.为此,我自定义将单元格格式化为0.00"test",例如A1具有公式的单元格=PI(),但使用自定义格式进行格式化0.00" test"将返回显示的结果3.14 test.

重要的是,该单元格的值是由格式不变-你仍然可以=A1 * 3在另一个单元格和得到的结果-因为价值A1仍然是皮,只有它的显示效果也改变了.

对于返回数值的UDF(在我的情况下,Long但它可以是任何数字),有没有办法返回一个单元格,使其以1路显示,但它的实际值(.Value2在VBA中我认为)是一个数字,而不是文字.

Format(在VBA中尝试过,但它返回一个文本字符串.我只是手动格式化我的单元格,但是从下面的代码可以看出,格式化取决于中间结果(我试图返回格式化的值,计算时间).

UDF_RESULT = Format(valueResult.Length, IIf(tElapsed < timeout, "0" & " """ & Round(tElapsed, 2) & "s""", "0"))
Run Code Online (Sandbox Code Playgroud)

这对于宏来说很容易,但在UDF中它更难.我可以在模块级别声明所有中间值,然后Worksheet_Calculate()宏可以访问这些值并应用自定义格式,但UDF包装的方法会好得多.

Mat*_*don 5

没有.

您将单元格的与其数字格式混淆.UDF可以计算一个,并且单元可以根据需要自由格式化该值.

因此,如果UDF返回一个数字,则该单元格的值是该函数的结果 - 数字.

只需根据需要格式化单元格.函数不会格式化任何内容.