我正在尝试在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
等...我试图在最后一个数字和句点之间添加零来格式化以便于排序。任何帮助将不胜感激
答案 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