2011-11-11 5 views
1

私はMac上のExcel 2010で正規表現を実装しようとしていますが、任意の数式やデータを私が得るすべてはここ#VALUEエラー#VALUEエラーのRegExp

では、モジュールの私の実装です:

Function RegExp1(ReplaceIn, ReplaceWhat As String, _ 
    ReplaceWith As String, Optional IgnoreCase As Boolean = False) 

    Dim re As Object 
    Set re = CreateObject("VBScript.RegExp") 
    re.IgnoreCase = IgnoreCase 
    re.Pattern = ReplaceWhat 
    re.Global = True 

    RegExp1 = re.Replace(ReplaceIn, ReplaceWith) 
End Function 

そして、私がしようセル内:

=RegExp1(D2,"(PR2001\.)(\d)","$100$2") 

このすべては次のように細胞上で実行されています

PR2001.1 
PR2001.2 
PR2001.3 

など...最後の桁とピリオドの間にゼロを追加して、簡単に並べ替えることができます。任意のヘルプが評価されます

+1

私が知っている限り、VBScriptはMacで利用できないので、これは単純に機能しません。 FWIWあなたのコードとWindowsでの動作例 –

答えて

0

Excel XはVBScriptをサポートしていないため、これを行うことはできません。 functonは動作し、式はうまくいく、btw。

私があなたに提案できるのは、InStrRevを使って関数を書くことです(実際にはregexpを使用することができても良い解決策です)。

Function AddZeros(ByVal text As String) As String 

Dim lastPeriod As Long 
lastPeriod = InStrRev(text, ".") 

If lastPeriod <> 0 Then 
    AddZeros = Left$(text, lastPeriod) & ("00" & Mid$(text, lastPeriod + 1)) 
Else 
    AddZeros = text 
End If 

End Function 
+0

ありがとうございます、XはregExをサポートしていません。残忍。 – on2valhalla

+0

本当に残酷! :0 – aevanko