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包装的方法会好得多.
没有.
您将单元格的值与其数字格式混淆.UDF可以计算一个值,并且单元可以根据需要自由格式化该值.
因此,如果UDF返回一个数字,则该单元格的值是该函数的结果 - 数字.
只需根据需要格式化单元格.函数不会格式化任何内容.