ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] EXCEL VBA ¥Ñ­pºâ»¡©ú­pºâª÷ÃB(¤G)

¦^´_ 2# Hsieh
·PÁ¦^ÂСA
³o¦¸¦³ CreateObject("Scripting.Dictionary") Åý§Ú¤@ª½¬Ý¤£À´¡A¤Wºô¬ã¨s«á¤j­P¤w¸gÀ´¤F§Aªºµ{¦¡¡A
¦]¬°­n­×§ï¥h°£ªº½X¡A­«·s¨Ì·Ó§Aªº¤½¦¡ºc¬[½s¼g¦p¤U:

¥t¥~¦A¸É¥R½Ð±Ð¤@°ÝÃD¡A Mid(¦r¦ê, i, 1) ¨ú¥X¤@¦r¦p¦ó§P©w¬O¤¤¤å¦r?

Function MyCal(MyStr$) As Double
    Application.Volatile
    Set d = CreateObject("Scripting.Dictionary")
    Dic = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789%+-*/^()"
    For i = 1 To Len(Dic)
        d(Mid(Dic, i, 1)) = Mid(Dic, i, 1)
    Next
    For i = Len(MyStr) To 1 Step -1
        MyStr = Replace(MyStr, Mid(MyStr, i, 1), d(Mid(MyStr, i, 1)))
    Next
    MyCal = Evaluate(MyStr)
End Function
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

¦^´_ 1# ML089
  1. Function MyCal(Mystr$) As Double
  2. Application.Volatile
  3. Set d = CreateObject("Scripting.Dictionary")
  4. ar = Array(40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 62, 91, 92, 93, 94, 95)
  5. For i = 0 To UBound(ar)
  6. d(Chr(ar(i))) = Chr(ar(i))
  7. Next
  8. For i = Len(Mystr) To 1 Step -1
  9. Mystr = Replace(Mystr, Mid(Mystr, i, 1), d(Mid(Mystr, i, 1)))
  10. Next
  11. MyCal = Evaluate(Mystr)
  12. End Function
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

        ÀR«ä¦Û¦b : ¦³®É·í«äµL®É­W¡A¦n¤Ñ­n¿n«B¨Ó³¡C
ªð¦^¦Cªí ¤W¤@¥DÃD