将函数参数从单元格提取到另一个单元格中

我需要能够从大量的单元格提取一个特定的硬编码参数值到一个新的单元格。

说一个单元格有以下forms

=func("value1","value2","value3") 

我想将value2提取到它自己的单元格中,所有的值都是可变的。

我已经能够通过将以下内容添加到我的名称pipe理器中来检索公式,

 =GET.CELL(6,INDIRECT("RC[-2]",FALSE)) 

但是这并不是真的有帮助,因为值是可变的,意味着string长度在函数值上是高度可变的。

我找不到GET.CELL任何官方信息,所以我认为这是用户定义的函数。

这意味着vba已被使用。 因此,我指定一个新的UDF:

 Function FuncArg(ByVal r As Range, ByVal n As Long) Dim a As String a = Split(r.Resize(1, 1).Formula, "(", 2)(1) a = Split(a, ")")(0) a = Split(a, ",")(n - 1) FuncArg = Application.Evaluate(a) End Function 

所以在Excel中,您可以使用公式=FuncArg(A1, 2)来返回单元格A1中函数的第二个参数。

注意,这个function必须在非常受控制的情况下使用:

  • 使用Application.Evaluate使其非常不安全;
  • 只检查第一个function;
  • 没有parsing嵌套函数或string编码,)