Excel上的VBA错误:找不到方法或数据成员

我的代码:

Public Sub splitUpRegexPattern() Dim regEx As New RegExp Dim strPattern As String Dim strInput As String Dim strReplace As String Dim Myrange As Range Set Myrange = ActiveSheet.Range("B2:B4279") For Each c In Myrange strPattern = "([AZ]{2}\/[AZ]{2}\/[AZ][0-9]{2}\/[az]{3}[0-9]{9}\/)([0-9]{4})" If strPattern <> "" Then strInput = c.Value strReplace = "$1" With regEx .Global = True .MultiLine = True .IgnoreCase = False .Pattern = strPattern End With If regEx.test(strInput) Then c.Offset(0, 1) = regEx.Replace(strInput, "$2") Else c.Offset(0, 1) = "" End If End If Next 

结束小组

它最初运行良好,它会给我一个错误,但仍然完成它正在做的任务。 但是,当我在一个新的电子表格上使用这个macros,它给了我错误:

Compile Error: Method or Data Member not found.

这个网站上的所有解决scheme都是针对不同的情况而devise的,所以我不能很好地把它们应用到我的情况中。

我不知道为什么会发生这种情况,因为我没有更改任何代码。 我相信,如果我对VBA脚本有了更深的理解,我就能理解这一点,但是我不知道,所以我来找出这里有人能帮助我!

谢谢!

Aydan

您需要添加一个名为“ Microsoft VBScript正则expression式5.5 ”库的引用,使其工作。

如果此代码在工作簿中工作,只是意味着您添加了该库引用,并且在将代码复制到新工作簿时,则需要再次添加相同的引用。

在现有的代码中,您将自动实例化名为redEx的variables,该variables假定已经添加了库引用以使其正常工作。

为了避免这种情况,你可以使用后期绑定技术,不需要你添加引用,代码可以在任何工作簿上工作。

为此,请将regExvariables声明为如下所示的对象…

 Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") 

我最好的猜测是你已经失去了一个图书馆的参考。 在VBE中,select工具 – 参考。 findMicrosoft VBScript正则expression式5.5并勾选它。