【发布时间】:2014-01-07 22:44:38
【问题描述】:
当然,您将使用上述单元格中的="" 公式来回答这个问题,但这不是我的情况。
实际上,我有一个函数仅在它的参数等于一个空单元格时才起作用,也就是说,一个单元格已被完全擦除,按下del 或类似的东西。
显然,我不能简单地删除单元格的内容,因为它从外部来源获取数据,有时我需要该单元格的内容在我的电子表格中呈现和可见。
当前单元格的公式类似于
=if([condition], "", [formula])
但如果单元格的值等于"" 而不是简单地为空,则该函数不再起作用(相反,如果内容等于[formula],它就可以正常工作)。
我不能修改函数,但我可以编写额外的 VBA 代码来实现结果。
根据 Daniel Cook 要求发布我的代码,以下是 QuantLibXL 的 qlFloatingRateBond 函数中的公式:
=qlFloatingRateBond(,,"EUR",3,,,"obj_0005#007",2,,"Actual/365",,,"obj_0004#008",,,,,,,)
如果你修改它
=qlFloatingRateBond(,,"EUR",3,,,"obj_0005#007",2,,"Actual/365",0,,"obj_0004#008",,,,,,,)
或
=qlFloatingRateBond(,,"EUR",3,,,"obj_0005#007",2,,"Actual/365","",,"obj_0004#008",,,,,,,)
由于提供了错误的参数而导致对象处理程序错误(修改涉及Floors 参数,我希望逗号和空默认参数没有犯任何错误...)。
让它管理没有楼层的绑定的唯一方法是为其提供一个真正的空单元格,但是如果您有一个外部数据源,它根据楼层的存在或不存在在该单元格中返回一些值,您将无法使其工作。
【问题讨论】:
-
你有机会分享你无法改变的功能吗?甚至可能是它的签名?没有这个,我怀疑是否会有任何有用的答案。
-
是的,它来自 [quantlib.org/quantlibxl] (QuantLibXL),就是这个:[quantlib.org/quantlibxl/…。真正的函数是用 C++ 编写的,这就是我所知道的一切。
-
这里有一个更好的方法链接qlFloatingRateBond你是如何调用该方法的?向我们展示您的代码。
-
是的,就是那个。对不起,我使用 SO 格式不好:)
-
@DanielCook 提供代码。