# Excel 2010 RegExp中的VALUE错误



我正试图在mac上实现Excel 2010中的正则表达式,但任何公式和数据我得到的都是#VALUE错误

这是我在一个模块中的实现:

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

等等……我试图在最后一个数字和句号之间添加零,以便更容易排序。如有任何帮助,不胜感激

Excel X不支持VBScript,所以你将无法做到这一点。顺便说一句,函数工作正常,表达式也没问题。

我可以建议你是写一个函数使用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

相关内容

最新更新