我需要能够从大量的单元格中提取一个特定的硬编码参数值到一个新的单元格中。
假设一个单元格有以下公式:
=func("value1","value2","value3")
我想将value2
提取到它自己的单元格中,所有值都是可变长度的。
通过在我的名称管理器中添加以下内容,我能够以文本的形式检索公式:
=GET.CELL(6,INDIRECT("RC[-2]",FALSE))
但是这并没有真正的帮助,因为变量的值意味着字符串长度在函数值上是高度可变的。
发布于 2013-09-26 23:50:24
我在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
中返回函数的第二个参数。
请注意,这一职能必须在非常受控制的情况下使用:
Application.Evaluate
使其相当不安全;,
或)
。https://stackoverflow.com/questions/19045057
复制相似问题