说我有以下功能:
函数MyFunction(A为字符串,可选B为整数)为字符串
在单元格A1中调用此函数:
= MyFunction的( “你好”, “15”)
我想通过读取A1:
中单元格的内容从另一个例程访问此函数的参数范围(“A1”)。公式
然而,当在单元格中输入公式时,这将使用参数作为字符串返回整个公式。有没有办法轻松提取参数(“Hello”和15)?我试图避免使用笨重的文本操作路径。
答案 0 :(得分:1)
如果你的所有参数都是Ranges,你可以使用Precedents
属性来获取参数。
如果情况并非如此,我担心文字操纵就是你所拥有的。如果你只是试图解析一个特定的函数(而不是任何函数),那就不那么糟了。
Function MyFunc(ar1, ar2)
MyFunc = 1
End Function
Public Sub ReadMyFunc(rng As Range)
Dim vaArgs As Variant
vaArgs = Split(Split(Left(rng.Formula, Len(rng.Formula) - 1), "MyFunc(")(1), ",")
Debug.Print "First arg is: " & vaArgs(0) & vbNewLine & "Second arg is: " & vaArgs(1)
End Sub
即时窗口的结果
?activecell.Formula
=MyFunc(A1,"1")
readmyfunc activecell
First arg is: A1
Second arg is: "1"