Это мой первый опыт работы с VBA. Я хотел использовать регулярное выражение в Excel и нашел следующий вопрос StackOverflow.
Как использовать регулярные выражения (Regex) в Microsoft Excel как внутри ячейки, так и в циклах
Я добавил «Регулярные выражения Microsoft VBScript 5.5» к своим ссылкам в VBAинтерфейс, и набрал 12abc
в ячейке A1
, как в примере. Затем я сделал Insert -> Module и скопировал следующий код в поле кода:
Function simpleCellRegex(Myrange As Range) As String
Dim regEx As New RegExp
Dim strPattern As String
Dim strInput As String
Dim strReplace As String
Dim strOutput As String
strPattern = "^[0-9]{1,3}"
If strPattern <> "" Then
strInput = Myrange.Value
strReplace = ""
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.test(strInput) Then
simpleCellRegex = regEx.Replace(strInput, strReplace)
Else
simpleCellRegex = "Not matched"
End If
End If
End Function
Однако, когда я набираю =simpleCellRegex(A1)
в ячейке B1
, я получаю ошибку
Compile error: method or data member not found
И в режиме отладчика первая строка кода подсвечивается.
Кто-то в комментариях к ответу упомянул, что может возникнуть ошибка, если код находится в ThisWorkbook
, а мой в Modules
.