繁体   English   中英

返回值将覆盖自身的Excel VBA UDF

[英]Excel VBA UDF that return value will override itself

我可以在Excel VBA中编写UDF的功能,该函数的返回值将覆盖调用它的单元格值吗?

该函数通过sql请求获取信息。 在这种情况下,它仅是主数据,例如项目描述。 如果用户将在许多单元格的工作表中使用此功能,则每次更改内容时,excel都会重新计算单元格值。 这种方法的性能很差,通常只需要一次获取信息,在这种情况下就不必更新。

我以为可以使用application.caller.address方法来获取调用该函数的地址,但似乎无法在函数内为此地址设置单元格值。 因此,该函数的返回值应覆盖运行该函数的原始公式。

这可能吗

谢谢你的帮助

没有。

您可能已经注意到Excel单元格具有多层。

一种是“价值”。 您可以分配的另一个公式。

函数返回一个值,因此返回值仅访问此层。 因此,您无法返回公式的替换项,因为它位于另一层。

函数与子函数的返回值不同,子函数不返回任何内容。 由于您具有“一次性使用”的行为,因此子函数比函数更适合您的需求,因为您不想返回值,而是要删除或替换单元格(公式)中的某些内容。

但是,这并不意味着您不能使用函数来执行此操作-但仍不能使用返回值。 但是,如果要使用这样的函数,则需要在数据刷新时重写整个公式。

我想你可能错过了一个让自己笑的观点。 Excel本身具有这种功能。 但这不是功能。

复制单元格并粘贴它们,但使用“仅值”。

完全具有相同的效果。

同样在重新计算方面...为什么不将其关闭? 您不必每次都重写该函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM