Excel 在vba中编辑/设置application.caller

Excel 在vba中编辑/设置application.caller,excel,vba,Excel,Vba,我有一个用户定义的数组函数,它利用application.caller来确定调用该函数的行数 现在我想从vba运行相同的函数。问题是,现在application.caller对象不包含任何关于行数的信息 是否有方法在vba中调用函数并手动设置application.caller,以便我可以将行数作为信息传递 有一个重要的限制:我不能以任何方式编辑函数,它必须完全不变 不,您不能设置应用程序。调用者。这太模糊,无法真正回答。请给出一个答案。如果无法编辑该函数,则必须将其放入电子表格中,对其进行评估

我有一个用户定义的数组函数,它利用application.caller来确定调用该函数的行数

现在我想从vba运行相同的函数。问题是,现在application.caller对象不包含任何关于行数的信息

是否有方法在vba中调用函数并手动设置application.caller,以便我可以将行数作为信息传递


有一个重要的限制:我不能以任何方式编辑函数,它必须完全不变

不,您不能设置
应用程序。调用者
。这太模糊,无法真正回答。请给出一个答案。如果无法编辑该函数,则必须将其放入电子表格中,对其进行评估,然后在删除编辑的同时继续处理结果。我建议使用
TypeName(Application.Caller)
查看函数是如何调用的,然后在此基础上设置行数-但是如果您不能更改函数,我会说答案是“否”。如果您正在编写VBA代码(如果您试图从VBA调用此函数,则必须编写VBA代码),为什么不编写新版本的函数,一个不依赖于
应用程序的调用方
?我怀疑这个函数是否写得很好(您描述的
Application.Caller
的使用方式似乎有问题)。为什么不直接实现您需要的功能,而不是调用一个可能写得不好、不允许修改的函数呢?