0

次のコードは、これまでに思いついたものです。正規表現 5.5 のリファレンスも設定しました。

ただし、一致値がまったく表示されません。ここに何か不足していますか??

Public Sub check()

Dim wb As Workbook
Set wb = ThisWorkbook

'Prepare a regular expression object
Dim myRegExp As New VBScript_RegExp_55.RegExp
Dim myMatches As MatchCollection
Dim myMatch As match
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = "^\d{6,8}-[SFTG]\d{7}[A-Z]-([^-]+)$"
Set myRegExp = CreateObject("vbscript.regexp")

cellValue = CStr(wb.Worksheets(1).Cells(2, 4).Value) 
'123456-S1234567F-Scholarship Form 

If myRegExp.Test(cellValue) Then


Set myMatches = myRegExp.Execute(cellValue)


For Each myMatch In myMatches
  MsgBox (myMatch.Value)

Next

Else
End If

End Sub
4

1 に答える 1

1

次の行を削除する

Set myRegExp = CreateObject("vbscript.regexp")

問題を解決するようです。

myRegExpこれは、新しいオブジェクトに割り当てるときにすべての初期化ステートメントがなくなったためだと思います

于 2013-09-26T05:53:28.190 に答える