如何让Excel UDF返回一个实际的date时间,而不是一般或双?

嗨,我已经创build了一个Excel UDF,返回一个string,date和整数数组。 不过,Excel将我的date时间值转换为双精度,因此我必须手动select值并在Excel中转​​换为短date。 如果我将date转换为我的C#代码中的string,Excel将它识别为一般,所以我不能抢那个单元格的值。 有没有解决方法?

提前致谢!

正如你所注意到的,Excel没有值的内部表示,因为date/时间 – date只适用于不同的格式。 某些内置函数(如=TODAY()由Excel内部专用,并自动应用date格式。 Excel没有用户定义的函数来select这种特殊行为的机制。

一个解决方法,虽然不是我会build议,是运行一个macros,在计算完成后更改调用单元格的格式。 您需要存储哪些单元格需要重新格式化(基于Application.Caller / xlfCaller),然后运行一个macros来更改单元格格式 – 从计算事件处理程序或使用Application.OnTime进行计划。

这相当丑陋。