我需要能夠從大量單元格中提取特定的硬編碼參數值到新單元格中。從單元格中提取函數參數到另一個單元格
假設一個電池具有以下分子式
=func("value1","value2","value3")
我想提取值2到自己的細胞,所有的值都是可變長度的。
我已經能夠通過添加下面以我的名字經理檢索公式爲文本,
=GET.CELL(6,INDIRECT("RC[-2]",FALSE))
但是,這並不能真正幫助的值是可變意味着字符串的長度是高度可變關於函數值。
我需要能夠從大量單元格中提取特定的硬編碼參數值到新單元格中。從單元格中提取函數參數到另一個單元格
假設一個電池具有以下分子式
=func("value1","value2","value3")
我想提取值2到自己的細胞,所有的值都是可變長度的。
我已經能夠通過添加下面以我的名字經理檢索公式爲文本,
=GET.CELL(6,INDIRECT("RC[-2]",FALSE))
但是,這並不能真正幫助的值是可變意味着字符串的長度是高度可變關於函數值。
我找不到關於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
使得它非常不安全
,
或)
。棒極了!感謝這一點,快速,簡單,並完成這項工作。 – Furnak
您甚至可以創建一個班輪:'FuncArg = Application.Evaluate(Split(Split(r.Resize(1,1).Formula,「(」,2)(1),「)」)(0), 「,」)(n - 1))'!!! –
請說明您的具體問題或添加其他詳細信息,以確切地突出顯示您的需求。正如它目前所寫,很難確切地說出你在問什麼。 – 2013-09-27 07:41:19