Немного догадываюсь, что вы подразумеваете под
Я разделил его через разделитель, а затем хочу сместить каждую часть разделения на
строка
Этот код будет принимать строку типа 123 456 Q 654 321 987 Q 789 012 и разбивать ее на три строки:
- 123 456
- 654 321 987
- 789 012
Для использования:
Если A1 содержит 123 456 Q 654 321 987 Q 789 012 , выделите C1:C3
и введите =SplitString(A1)
в качестве формулы массива.
Public Function SplitString(Target As Range, Optional Delim As String = "Q") As Variant
SplitString = Application.WorksheetFunction.Transpose(Split(Target, Delim))
End Function
Если вы хотите, чтобы это была процедура, а не функция, используйте:
Sub Test()
SplitString_2 Sheet1.Range("A1"), Sheet1.Range("D1")
End Sub
Public Sub SplitString_2(Target As Range, Destination As Range, Optional Delim As String = "Q")
Dim vSplit As Variant
Dim lElements As Long
vSplit = Split(Target, Delim)
lElements = UBound(vSplit) + 1 'Assumes LBound = 0
Destination.Resize(lElements) = Application.WorksheetFunction.Transpose(vSplit)
End Sub