Предполагая, что ваши имена в Column A
и ваши значения в Column B
.
Это выведет разделенные имена в Column C
и ваши разделенные значения в `Столбец D.
Option Explicit
Sub Work_Sub()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LR As Long, iName, iValue, iCell As Range
Dim j As Long, c As Long
LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
c = 1
For Each iCell In ws.Range("A2:A" & LR)
If InStr(iCell, ";#") Then
iName = Split(iCell, ";#")
iValue = Split(iCell.Offset(, 1), ",")
If UBound(iName) = UBound(iValue) Then
For j = LBound(iName) To UBound(iName)
ws.Range("C" & c) = iName(j)
ws.Range("D" & c) = iValue(j)
c = c + 1
Next j
Else
ws.Range("C" & c) = "Unmatched splits"
End If
iName = ""
iValue = ""
Else
iCell.Offset(0, 2).Value = iCell.Value
iCell.Offset(0, 1).Value = iCell.Offset(0, 3).Value
c = c + 1
End If
Next iCell
End Sub
Не проверено.Вероятно, из-за убийства - просто побежал с первым методом, который пришел в голову