Excel VBA函数适用于单元格,但不适用于公式

Excel VBA函数适用于单元格,但不适用于公式,excel,vba,Excel,Vba,我已经编写了一个VBA函数,但无法按我所希望的方式调用它 我正在调用单元格公式编辑器中的函数 这是有效的:=myFunction(A2) 这就是我想要的,但它不起作用:=myFunction(VLOOKUP(A2,'Sheet2'!A:B,2,FALSE)) 函数定义为: Public Function myFunction(Myrange As Range) As String 'function replaces a regular expression End Functi

我已经编写了一个VBA函数,但无法按我所希望的方式调用它

我正在调用单元格公式编辑器中的函数

这是有效的:
=myFunction(A2)

这就是我想要的,但它不起作用:
=myFunction(VLOOKUP(A2,'Sheet2'!A:B,2,FALSE))

函数定义为:

Public Function myFunction(Myrange As Range) As String
        'function replaces a regular expression
End Function
我怎么才能把这个叫做vlookup公式的结果呢


(顺便问一下,stackoverflow是这个地方吗?还是更适合超级用户?

这样就可以了。问题是VLOOKUP不返回范围。
公共函数myFunction(Myrange As String)As String
@ScottCraner-可能希望它是一个
变量
参数?可以这样做,但在处理代码之前,需要确保它不是一个范围,以确保代码正在处理相同的类型。在这种情况下,我将是显式的,如果需要一个文本字符串,请将其设置为字符串。如果一个人想要一个数字,就把它变成一个双精度数字。然后在代码中你知道你应该得到什么@BigBenFYI,新的
XLOOKUP
确实返回了一个范围,这对SO来说很好。问题是VLOOKUP不返回范围。
公共函数myFunction(Myrange As String)As String
@ScottCraner-可能希望它是一个
变量
参数?可以这样做,但在处理代码之前,需要确保它不是一个范围,以确保代码正在处理相同的类型。在这种情况下,我将是显式的,如果需要一个文本字符串,请将其设置为字符串。如果一个人想要一个数字,就把它变成一个双精度数字。然后在代码中你知道你应该得到什么@BigBenFYI,新的
XLOOKUP
确实返回一个范围