標題:
EXCEL VBA 由計算說明計算金額
[打印本頁]
作者:
ML089
時間:
2012-9-4 20:13
標題:
EXCEL VBA 由計算說明計算金額
EXCEL VBA 由計算說明計算金額
E欄為自訂之刪除字串(會再增加),用來刪除B欄計算說明中的字串,最後會變成計算式,再將計算式計算為C蘭的金額。
[attach]12365[/attach]
[attach]12366[/attach]
懇請協助,謝謝
作者:
Hsieh
時間:
2012-9-4 20:27
回復
1#
ML089
Sub nn()
For Each b In Range([B2], [B65536].End(xlUp))
mystr = b
For Each a In Range("E:E").SpecialCells(xlCellTypeConstants)
mystr = Replace(mystr, a, "")
Next
b.Offset(, 1) = Evaluate(mystr)
Next
End Sub
複製代碼
作者:
ML089
時間:
2012-9-4 22:04
回復
2#
Hsieh
感謝,經測試完全正確
是否可以再幫忙改為自定函數
例如我在 C2 輸入 =計算(B2) 就能計算出來
E欄的刪除字串我想放入自定函數中比較方便使用(因為有不同的格式要用才不用一直改程式),也麻煩預留刪除字串要擴充的空間,再次請託,感謝
作者:
Hsieh
時間:
2012-9-4 22:20
回復
3#
ML089
Function MyCal(Mystr As String, Rng As Range) As Double
For Each a In Rng
Mystr = Replace(Mystr, a, "")
Next
MyCal = Evaluate(Mystr)
End Function
複製代碼
C2=mycal(B2,$E$2:$E$6)
作者:
ML089
時間:
2012-9-4 23:05
回復
4#
Hsieh
太棒了,自訂函數還是比較好用
最後再麻煩一下
如果沒有輸入第二參數時,可以用內定參數值 "斤","兩","蘋果","香蕉","沙蝦"
如能改成這樣就太完美了
先謝謝你
作者:
Hsieh
時間:
2012-9-4 23:46
回復
5#
ML089
Function MyCal(Mystr As String, ParamArray MyStrList()) As Double
For Each a In MyStrList
Mystr = Replace(Mystr, a, "")
Next
MyCal = Evaluate(Mystr)
End Function
複製代碼
作者:
ML089
時間:
2012-9-5 00:20
回復
6#
Hsieh
謝謝回覆,但和我想要的有點不一樣,因為我不會改,希望再麻煩一下
如果沒有輸入第二參數時,可以用內定參數值 "斤","兩","蘋果","香蕉","沙蝦"
是指 第二參數仍是 RANGE
如 第二參數沒有輸入時( =MyCal(B2) ),刪除字串使用 FUNCTION內的一組參數陣列 "斤","兩","蘋果","香蕉","沙蝦" (寫在FUNCTION 裡面)
作者:
Hsieh
時間:
2012-9-5 09:07
回復
7#
ML089
Function MyCal(Mystr As String) As Double
MyStrList=Array("斤","兩","蘋果","香蕉","沙蝦")
For Each a In MyStrList
Mystr = Replace(Mystr, a, "")
Next
MyCal = Evaluate(Mystr)
End Function
複製代碼
作者:
ML089
時間:
2012-9-5 09:58
回復
8#
Hsieh
我想使用上還是以最後這方式比較簡單
感謝你的不厭其煩的協助
不知道要如何給你一個讚,或像Y+給你最佳回答
要如何CLOSE本問題?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)