我在單元格中有0,4*A1
(作爲字符串)。如何將這個「字符串公式」轉換成一個真實的公式並在另一個單元格中計算它的值?如何將字符串公式轉換爲「真實」公式
回答
評估和演示可能適合:
- http://www.mrexcel.com/forum/showthread.php?t=62067
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function
只是爲了好玩,我發現了一個interesting article here,使用某種方式隱藏評估功能,它在Excel中存在。訣竅是將它分配給一個名稱,並在您的單元格中使用該名稱,因爲如果直接在單元格中使用EVALUATE()會給您一個錯誤消息。我嘗試過,它的工作原理!如果要在表格中跨行復制,則可以使用相對名稱。
有趣但似乎並不適用於更新版本的Excel。如果我正確地閱讀它,那麼訪問被抑制的20世紀90年代Excel行爲到2000年初的Excel,但在2010年,2013年,辦公室365等過時是一種伎倆? – 2015-10-30 15:55:24
在Excel 2010中爲我工作... – jimbobmcgee 2016-04-04 12:00:42
如果工作正常,沒有任何事情是「過時的」! 4.0宏語言提供了一些巧妙的技巧。 – 2016-08-05 04:50:22
UPDATE這用來工作(在2007年,我相信),但不會在Excel 2013年
EXCEL 2013: 這是不太一樣的,但如果有可能把0.4一個單元格(B1,比如說)以及單元格D1中另一個單元格(例如C1)中的文本值A1,可以使用= B1 * INDIRECT(C1),這會導致計算0.4 * A1的值。 所以,如果A1 = 10,你會在D1單元中得到0.4 * 10 = 4。如果我能找到一個更好的2013年解決方案,我會再次更新,並對不起微軟破壞了原始功能的間接!
EXCEL 2007版本: 對於非VBA解決方案,請使用INDIRECT公式。它將一個字符串作爲參數並將其轉換爲單元格引用。
例如,= 0.4 * INDIRECT(「A1」)將返回值0.4 *該值在該工作表的A1單元格中。
如果單元格A1是,比如說,10,則= 0.4 * INDIRECT( 「A1」)將返回4.
我prefere的專業解決方案的VBA的解決方案。
隨着份替換-過程中的問題 search and replace WHOLE WORDS ONLY,我使用下面的VBA的過程:
在Excel工作表''
' Evaluate Formula-Text in Excel
'
Function wm_Eval(myFormula As String, ParamArray variablesAndValues() As Variant) As Variant
Dim i As Long
'
' replace strings by values
'
For i = LBound(variablesAndValues) To UBound(variablesAndValues) Step 2
myFormula = RegExpReplaceWord(myFormula, variablesAndValues(i), variablesAndValues(i + 1))
Next
'
' internationalisation
'
myFormula = Replace(myFormula, Application.ThousandsSeparator, "")
myFormula = Replace(myFormula, Application.DecimalSeparator, ".")
myFormula = Replace(myFormula, Application.International(xlListSeparator), ",")
'
' return value
'
wm_Eval = Application.Evaluate(myFormula)
End Function
''
' Replace Whole Word
'
' Purpose : replace [strFind] with [strReplace] in [strSource]
' Comment : [strFind] can be plain text or a regexp pattern;
' all occurences of [strFind] are replaced
Public Function RegExpReplaceWord(ByVal strSource As String, _
ByVal strFind As String, _
ByVal strReplace As String) As String
' early binding requires reference to Microsoft VBScript
' Regular Expressions:
' with late binding, no reference needed:
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Global = True
're.IgnoreCase = True ' <-- case insensitve
re.Pattern = "\b" & strFind & "\b"
RegExpReplaceWord = re.Replace(strSource, strReplace)
Set re = Nothing
End Function
使用的程序的樣子:
最好的,非VBA的方法是使用TEXT公式。它將一個字符串作爲參數並將其轉換爲一個值。
例如,= TEXT(「0.4 * A1」,'##')將返回值0.4 *該值在該工作表的A1單元格中。
這不起作用,並且公式錯誤(「需要」而不是「##」) – wardw123 2016-12-15 19:40:35
在我看來,最好的解決方案是在這個環節: http://www.myonlinetraininghub.com/excel-factor-12-secret-evaluate-function
下面是一個總結: 1)在單元格A1中輸入1, 2)在A2單元格中輸入2, 3)在單元格A3輸入+, 4)創建一個命名範圍,在創建指定範圍時在「指向」字段中添加「=評估(A1 & A3 & A2)」。讓我們稱這個命名範圍爲「testEval」, 5)在單元格A4中輸入= testEval,
單元格A4的值應該是3。
備註: a)不需要編程/ vba。 b)我在Excel 2013中做到了這一點,它的工作原理。
給出的示例不起作用,但鏈接示例確實起作用。 – JayJay123 2017-02-05 23:15:44
- 1. 將字符串轉換爲公式
- 2. Excel - 將字符串轉換爲公式
- 3. 將字符串轉換爲公式
- 4. 將字符串轉換公式,數學公式在C#
- 5. 如何將字符串公式轉換爲javascript中的數字?
- 6. 如何將字符串轉換爲數學公式
- 7. 轉換公式字符串方程
- 8. 將公式轉換爲VBA
- 9. 將公式轉換爲PHP
- 10. 如何將excel公式轉換回文本字符串?
- 11. 如何將MathJax公式轉換爲img
- 12. 如何將公式轉換爲文本?
- 13. 如何將公式轉換爲Python?
- 14. 如何將excel公式轉換爲javascript
- 15. 將公式結果轉換爲使用excel的字符串VBA
- 16. 將字符串轉換爲公式內的貨幣
- 17. 在Crystal Report公式中將字符串轉換爲日期
- 18. 將字符串轉換爲數學公式
- 19. 將算術公式從字符串轉換爲值
- 20. 將字符串轉換爲Julia中的公式對象
- 21. 將字符串轉換爲含變量的公式
- 22. 將字符串轉換爲公式在R
- 23. 將文字文本轉換爲公式
- 24. 如何使用Javascript將字符串公式轉換爲數字值
- 25. 如何使用Crystal Reports將公式中的數字轉換爲公式?
- 26. 在Excel中將公式中的公式轉換爲公式中的值VBA
- 27. 如何轉換C#中的字符串公式?
- 28. 如何將公式轉換爲函數,或將公式應用於某些值?
- 29. 將公式轉換爲每週目標的Excel公式
- 30. 將Long Excel工作表公式轉換爲VBA公式
**如果使用這種方法,請小心**:默認情況下,Evaluate()會在活動工作表的上下文中操作*,所以像Eval(「0.4 * A1」)這樣的輸出將會改變取決於哪個工作表處於活動狀態。您可以使用(例如)'Application.ThisCell.Parent.Evaluate(Ref)'將上下文限制爲包含調用'Eval'的工作表。 – 2015-09-08 19:45:24
它在Excel 2013中還能工作嗎? – 2016-09-02 12:33:10