gpt4 book ai didi

vba - 如何使 Excel 单元格等于空(可能通过 VBA 代码)

转载 作者:行者123 更新时间:2023-12-02 07:28:26 25 4
gpt4 key购买 nike

当然,您将使用要在上述单元格中写入的 ="" 公式来回答这个问题,但这不是我的情况。

实际上,我有一个函数,当它的参数等于一个空单元格时才起作用,也就是说,一个已被完全删除的单元格,按del键在其上或者这样的事情。

显然,我不能简单地删除单元格的内容,因为它从外部源获取数据,有时我需要该单元格的内容在我的电子表格中存在并可见。

当前单元格的公式类似于

=if([condition], "", [formula])

但是如果单元格的值等于""而不是简单地为空,则该函数不再起作用(相反,如果内容等于[,则该函数可以正常工作)公式])。

无法修改该函数,但我可以编写额外的 VBA 代码来实现结果。

根据 Daniel Cook 发布我的代码的请求,以下是来自 QuantLibXLqlFloatingRateBond 的公式功能:

=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参数,我希望没有对逗号和空默认参数犯任何错误......) .

使其管理没有下限的债券的唯一方法是为其提供一个真正的空单元格,但是如果您有一个外部数据源,该数据源根据下限的存在或不存在在该单元格中返回一些值,您可以将无法使其工作。

最佳答案

这可能无法解决您的问题,因为我没有 QuantLibXL,但如果您想删除工作表上所有计算结果为“”的单元格,您可以尝试:

sheet.UsedRange.SpecialCells(xlCellTypeFormulas, 2).Select
Selection.ClearContents

这将找到所有生成文本的公式,然后将其删除。注意:如果没有,这可能会失败,而且也可能过于激进。

另一个技巧是将公式更改为:

=if([condition], NA(), [formula])

现在,这些值将是错误,而不是空单元格 (#N/A)。也许该库理解错误而不是 0 或“”值。

如果您想从工作表中删除所有错误,您可以修改上面的 VBA 代码以查找所有导致错误的公式:

sheet.UsedRange.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents

同样,如果没有,这会出错。

不是最好的答案,但也许是一些值得思考的问题。

关于vba - 如何使 Excel 单元格等于空(可能通过 VBA 代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18881053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com