Excel 2010 RegExp中的#VALUE错误

时间:2011-11-11 18:43:48

标签: excel-vba vba excel

我正在尝试在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

等...我试图在最后一个数字和句点之间添加零来格式化以便于排序。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

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