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

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

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

­ìµo°Ý¦p¤U¡A¬O§Q¥Î§R°£¦r¦ê¨Ó§R°£³¡¥²­nªº¦r¤¸
http://forum.twbts.com/thread-7705-1-1.html

¦]¬°«e¤è¦¡ÁÙ¤£¬O«Ü¤è«K¨Ï¥Î¡A§Æ±æ³]©w²³æ³W«h¨Ó§R°£¤£¥²­nªº¦r¤¸©Î¬O«O¯d¥²­nªº¦r¤¸
CÄæ­pºâ»¡©ú¤¤¡A¥u­n«O¯d ¼Æ¦r 0-9¡A¹Bºâ²Å¸¹ + - * / ^ % ¡A¬A¸¹ ( ), ­^¤å a-z A-Z ¨ä¥L§R°£¡A
§R°£«á·|Åܦ¨¼Ð·Ç­pºâ¦¡¡A¦A­pºâ¦¡©ñ¤JDÄæª÷ÃBÄæ¡A¬°¤F¤è«KÀˬd¥¿½T©Ê¡A¥i§_¥H¤½¦¡¤è¦¡©ñ¤J¡C




ÀÉ®× EXCEL VBA ­pºâ»¡©úÂàª÷ÃB(¤G).rar (5.99 KB)
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

¦^´_ 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

¦^´_ 4# Hsieh

·PÁ¦^ÂÐ

¦bEXCEL¬O¥ÎCODE¡Aº¸¥B½X¬O¥¿¼Æ5¦ì
¦bVBA¬O¥ÎASC¡Aº¸¥B½X¬O­t¼Æ5¦ì
VBAªºASC»PEXCELªºASC¬O¤£¦P·N¸q¡A
EXCELªº¨ç¼Æ»PVBAªº¨ç¼Æ¤£¦P¦W¥Îªk¤]¤£¦P¡A¾Ç²ß°_¨Ó¯u¬Oµh­W¡C
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

¦^´_ 6# chin15
«z! ¨Ï¥Î CreateObject("VBSCRIPT.REGEXP") Åýµ{¦¡½X§óµu¡A¯u¼F®`
ÁöµM¬Ý¤£À´¡AÁÙ¬O¥ýµ¹¤@­ÓÆg
EXCEL¸Ì§ä¤£¨ì»¡©ú¡Aºô¸ô³£¬O¨Ò¤l§ä¤£¨ì§¹¾ã»¡©ú¡A¤£ª¾­þ¸Ì¦³»¡©ú¥i¥H¬Ý¡A¥i§_§iª¾ ¤@¤U¡C
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

¦^´_ 8# chin15

»¡©ú²M·¡¡A·PÁ§A¡A¤SÅý§Ú¦h¾Ç¤F¦n´X©Û¡A¦Aµ¹§A¤@­Ó Æg
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

¦^´_ 9# c_c_lai

ÁÂÁ§A´£¨Ñ¡A¦b¬Ý§Aªº¤½¦¡®É¡A¤]Åý§Ú·Q¨ì¥t¤@ºØ²³æ¼gªk(¦CÁ|ªk)
Function MyCal(MyStr$) As Double
    Dim Dic As String, xStr As String
    Dic = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789%+-*/^()"
    For i = 1 To Len(MyStr)
        If InStrB(1, Dic, Mid(MyStr, i, 1), 1) <> 0 Then
            xStr = xStr & Mid(MyStr, i, 1)
        End If
    Next i
    MyCal = Evaluate(xStr)
End Function
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

        ÀR«ä¦Û¦b : ¤f»¡¤@¥y¦n¸Ü¡A¦p¤f¥X½¬ªá¡F¤f»¡¤@¥yÃa¸Ü¦p¤f¦R¬r³D¡C
ªð¦^¦Cªí ¤W¤@¥DÃD