我在寫一個小宏,它將遍歷工作表中的所有單元格,併爲特定的正則表達式測試列。我寫了一個簡單的正則表達式來比較輸入是否是字符串;如果是,那麼它應該忽略它,否則它應該將單元格格式化爲紅色。預期的輸出是錯誤內容的單元格應該變色。但是,VBA處理每個內容並將每個不正確的條目都傳遞給正確的。爲什麼輸入給定錯誤時,vba總是返回無錯誤?
這裏是我的代碼:
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Pattern = "/^[A-Za-z]+$/"
.Global = True
.IgnoreCase = True
If .Test(cell_value) Then
Cells.Item(num_rows, num_cols).Interior.ColorIndex = RGB(255, 0, 0)
MsgBox "Error" + cell_value
Else
MsgBox "No error" + cell_value
End If
End With
它總是返回「沒有錯誤」,甚至不正確的輸入。任何提示?
首先,我不認爲VBScript RegExp語法使用'/'字符來分隔正則表達式模板。其次,在你的代碼中,如果發現模式,測試將是真實的,錯誤將被返回,這似乎與你所要解釋的相反。 –
@VincentG是的,你是對的。 VB正則表達式不使用/字符分隔正則表達式,是的你正確地得到它。 – Nevermore