2013-06-26 393 views
1

使用VBA,我試圖將字符串如「/ 10」轉換爲算術運算,以便如果以某種方式將它連接(取決於它如何轉換)數字200 ,數字20將被退回。VBA - 將字符串轉換爲算術運算符

感謝您的任何幫助。

+1

'Application.Evaluate(23 「/ 10」)' –

回答

4

你在找什麼叫做數學解析器。看看可以在VBA中使用的庫。如果你正在使用excel特定的東西 - 我確信excel已經有了一個內置的數學解析器 - 儘管我不知道如何作爲程序員訪問它。也許將表達式作爲字符串粘貼到單元格中,然後調用Eval()。

編輯 微軟故意刪除從功能這一功能調用Excel中,但它可以通過創建以下功能恢復:

Function Eval(Ref As String) 
Application.Volatile 
Eval = Evaluate(Ref) 
End Function 

然後,只需調用Eval("200" & "/10")

EDIT2

正如以下評論所述,現代版本的VBA支持

Application.Evaluate("200" & "/10") 
+0

+1很好的解釋,但我認爲'Application.Evaluate'可能是一個更好的解決方案。 –

+0

謝謝。評估跳過了我的想法。我可以使用:評估(「200」和「/ 10」) –

+0

可能是更好的,@DavidZemens。我很長一段時間都沒有碰過VBA,所以隨着谷歌首先出現在Google上。 – RutledgePaulV

1

下面的例子提供了一種完成你正在尋找的東西的方法。

Dim s As String 
s = "/10" 
Dim i As Integer 
i = 200 
Dim v 
v = Evaluate(CStr(i) & s) 
MsgBox v