2010-11-05 61 views
2

我需要對單元格公式執行Mid或Find,而不是單元格內容。從Excel公式提取參數或字符串 - Excel 2003

如果我的細胞公式爲:

= [FUNC](ARG1,Arg2所得,ARG3)

我需要能夠提取說Arg2所得到另一個小區。

這可能不使用VBA或特殊的Excel加載項?

我試過使用單元格,但沒有選項可以返回單元格包含的公式,如果我可以將該公式打包爲另一個單元格的字符串,則可以使用Mid和Find等。

任何想法?

乾杯

回答

2

對,這是確實的那些情況下一個,其中僅一個UDF(用戶定義的公式)的伎倆。這裏有一個可能的功能(不太複雜);你當然可以在你的UDF中添加更多你需要的處理。

Function FormulaText(cell As Range, _ 
     Optional default_value As Variant) 

' Returns the formula of the top leftmost cell in range as text 
' default_value Value to return, if cell is empty 

Set cell = cell.Resize(1, 1) 

If cell.Formula = "" And Not IsMissing(default_value) Then 
    FormulaText = default_value 
Else 
    FormulaText = cell.Formula 
    ' If using a non-Englisch Version of Excel, cell.FormulaLocal 
    ' returns the Formula in the localized format 
    ' instead of e.g. 
    '  =SUM(C7, C9) in my case it would return 
    '  =SUMME(C7;C9) 
End If 

End Function 

打開Visual Basic編輯器(Alt + F11),創建一個新模塊並將代碼粘貼到編輯區域。

用EXCEL

=FormulaText(A1, "No formula") with default value if referenced cell is empty 
=FormulaText(A1)    without default value 
=FormulaText(A1:B3)    return only the formula from A1 

HTH 安德烈亞斯