Я написал Sub для извлечения информации об участниках организации из различных других документов после их импорта. Есть ли лучший способ сделать это?
Этот код кажется успешным, однако кажется, что есть лучший способ сделать это.
Цель состоит в том, чтобы переформатировать имена членов из LASTNAME, FIRSTNAME MIDDLE NAME в LASTNAMEFIRSTNAME и сопоставить его с другими документами, в которых имена членов отформатированы по-разному - например, LASTNAME, FIRSTNAME без отчества.
При совпадении основной реестр извлекает информацию из сопоставленного реестра.
Как я могу улучшить это?
Заранее спасибо!
Option Explicit: Option Base 1
Dim a, a2, b, cl As Variant, i, x, y As Integer, r, r2 As Range, LC, FC As String
Sub Test()
y = sAlpha.Cells(Rows.Count, 1).End(xlUp).Row: FC = sAlpha.Cells(1, 1).Address
LC = sAlpha.Cells(y, 1).Address: Set r = sAlpha.Range(FC, LC): a = r
ReDim b(1 To UBound(a), 2)
On Error GoTo nxt
For i = 1 To UBound(a)
b = Split(a(i, 1), ", "): a(i, 1) = b(0)
b = Split(b(1), " "): a(i, 1) = a(i, 1) & b(0)
b = Replace(a(i, 1), " ", ""): a(i, 1) = b
Next i
nxt:
r.Value = a
FC = sAlpha.Cells(1, 10).Address: LC = sAlpha.Cells(y, 10).Address: Set r2 = sAlpha.Range(FC, LC)
i = 1
For Each cl In r
x = WorksheetFunction.Match(cl, r2, 0): cl = r2(x, 2): r(i, 2).Value = cl: i = i + 1
Next cl
End Sub