UDF返回格式化的数字

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

关键的是,单元格的值没有被格式化 – 仍然可以在另一个单元格中执行=A1 * 3并得到结果 – 因为A1仍然是Pi,只是它的显示已经改变。

对于返回一个数值(在我的情况下, Long ,但它可以是任何数字) 的UDF是否有返回一个单元格的方式,以便它显示的方式1,但它是实际值(VBA中的.Value2我相信)是一个数字,而不是文本。

我试过Format(在VBA中,但是它返回一个文本string,我只是格式化我的单元格,我想如何手动,但正如你可以从下面的代码看到,格式是依赖于中间结果(我试图以计算所花费的时间返回格式化的值)。

 UDF_RESULT = Format(valueResult.Length, IIf(tElapsed < timeout, "0" & " """ & Round(tElapsed, 2) & "s""", "0")) 

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

没有。

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

所以如果一个UDF返回一个数字,这个单元格的值是该函数的结果 – 一个数字。

只需要格式化单元格。 一个函数不会格式化任何东西。