Функция Split, простейшее из простейшего - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, уважаемые знатоки! Задача простая, но решение нужно срочно. В ячейки A1:A3 записаны значения 1, 2, 3 по порядку. В ячейки B1:B3 записаны значения "42v44v46", "44", "42v44v46" соответственно. Необходим макрос, который разделяет B1:B3 с разделителем "v", записывает значения в столбец D и к каждому разделенному значению в столбец С приписывает соответствующее ему значение из столбца А. Думаю, достаточно понятно. К неразделённой строке 2 так и приписать значение "2". Вот код, который уже имеется, что нужно добавить?

Решение задачи: «Функция Split, простейшее из простейшего»

textual
Листинг программы
Sub Test2()
Dim iRow&, iCount&, iArr$(), iArr2(), i&
  Application.ScreenUpdating = False
  iArr2 = Range(Cells(1, 1), Cells(Rows.Count, 2).End(xlUp)).Value
  iRow = 1
  For i = 1 To UBound(iArr2)
    iArr = Split(iArr2(i, 2), "v")
    iCount = UBound(iArr) + 1
    If iCount > 1 Then
      Cells(iRow, 4).Resize(iCount) = Application.Transpose(iArr)
      Cells(iRow, 3).Resize(iCount) = iArr2(i, 1)
    Else
      Cells(iRow, 4) = iArr2(i, 2)
      Cells(iRow, 3) = iArr2(i, 1)
    End If
    iRow = iRow + iCount
  Next
  Application.ScreenUpdating = True
End Sub

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы