Я написал макрос, который работал нормально, но похоже, что произошло какое-то обновление, и теперь мой код не работает. Может кто-нибудь помочь мне определить, что происходит не так или почему эта функция больше не работает?
Вот функция как есть:
Function FindReplace(CellValue$)
Dim strPattern$: strPattern = "[^A-Za-z, ]+" 'Pattern to only take care of letters
Dim strReplace$: strReplace = "" 'Replace everything else with blank
Dim regex As Object
Set regex = CreateObject("vbscript.regexp")
With regex
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
FindReplace = regex.Replace(CellValue, strReplace) 'RegEx Function replaces the pattern with blank
End Function
Я пытаюсь, чтобы она смотрела на ячейку и позволяла всплывать только определенным символам.
Вот большой код, частью которого является эта функция:
'Concatenate all the data in the rows into columns A
Sheets("Formula2").Select
Dim Lastrow%: Lastrow = ActiveSheet.UsedRange.Rows.Count
Dim strConcatenate$, I%, j%
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = ActiveSheet
Range("A:A").Clear
For I = 1 To Lastrow
For j = 2 To lastColumn(I) 'Calls function "LastColumn" to get the last column of each row
strConcatenate = strConcatenate & FindReplace(ws.Cells(I, j))
Next j
ws.Cells(I, 1) = strConcatenate 'This will past the finished string into column [A] in the specific row
strConcatenate = "" 'blanks the string, so the next string in the next row is fresh
Next I