Я нашел отличную функцию RegEx, которую я использую (см. Ниже). Функция выводит массив. Это нормально, если мне нужен только первый элемент массива. Но я пытаюсь извлечь авторов из данных цитирования, поэтому мне нужно извлечь несколько элементов из этого вывода.
Я знаю о массивах в листах Excel. Поэтому я попытался = {ReFind (A3, "[^ ()] +")}, выделил область и нажал Ctrl + Shift + Enter, но он возвращает ошибку и {= ReFind (A3, "[^ ()] + ")} просто дублирует формулу в ячейках.
Есть ли способ заставить функцию выводить массив в несколько ячеек по формуле? Могу ли я уйти без необходимости писать больше VBA?
Function ReFind(FindIn, FindWhat As String, _
Optional IgnoreCase As Boolean = False)
Dim i As Long
Dim matchCount As Integer
Dim RE As Object, allMatches As Object, aMatch As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = FindWhat
RE.IgnoreCase = IgnoreCase
RE.Global = True
Set allMatches = RE.Execute(FindIn)
matchCount = allMatches.Count
If matchCount >= 1 Then
ReDim rslt(0 To allMatches.Count - 1)
For i = 0 To allMatches.Count - 1
rslt(i) = allMatches(i).Value
Next i
ReFind = rslt
Else
ReFind = ""
End If
End Function