Доброго времени суток. Макрос отличнейший и огромное спасибо всем кто его создал.
У меня после парсинга магазина атрибуты товара с разделителем и соответственно к ним идет цена с таким же разделителем. 1-й столбец атрибут1|атрибут2|атрибут3 2-й столбец Цена1|Цена2|Цена3
Подскажите, как сократить/изменить код, чтобы:
1. можно было содержимое двух столбцов одновременно переносить вниз согласно указанным разделителям (макрос работает только с одним столбцом)
2. Если 1-й пункт проблемный, то как исправить чтобы не сдвигало вниз чтобы цена соотвествовала своему атрибуту (вторую колонку тоже сдвигает вниз при применении) в этом случае оно должно занимать пустые ячейки после первого применения макроса на столбце атрибуты.
3. Есть ли возможность при сдвиге копировать все данные слева или например только первый столбец (для сохранения названия или чтобы артикул оставался прежним)?
Спасибо за любую помощь.
upd
Использовал в макросе этот код
У меня после парсинга магазина атрибуты товара с разделителем и соответственно к ним идет цена с таким же разделителем. 1-й столбец атрибут1|атрибут2|атрибут3 2-й столбец Цена1|Цена2|Цена3
Подскажите, как сократить/изменить код, чтобы:
1. можно было содержимое двух столбцов одновременно переносить вниз согласно указанным разделителям (макрос работает только с одним столбцом)
2. Если 1-й пункт проблемный, то как исправить чтобы не сдвигало вниз чтобы цена соотвествовала своему атрибуту (вторую колонку тоже сдвигает вниз при применении) в этом случае оно должно занимать пустые ячейки после первого применения макроса на столбце атрибуты.
3. Есть ли возможность при сдвиге копировать все данные слева или например только первый столбец (для сохранения названия или чтобы артикул оставался прежним)?
Спасибо за любую помощь.
upd
Использовал в макросе этот код
| Код |
|---|
Sub TextOnRowsInRange()
'Àâòîð: webley
'Ðåäàêòîð: JayBhagavan
'Òåìà íà ñàéòå: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=64813&TITLE_SEO=64813-tekst-po-strokam-iz-yacheyki
'========================================================================================================================================
Dim cl As Range, rng As Range, rngTmp As Range
Dim strDelim$, strTmp$
Dim Arr() As String
Dim i&, n&, j&, k&
strDelim = InputBox("Ââåäèòå ñèìâîë-ðàçäåëèòåëü")
If strDelim = "ïåðåíîñ" Then strDelim = Chr(10)
If strDelim = "" Then End
Application.ScreenUpdating = False
If TypeName(Selection) = "Range" Then
Set rng = Selection
n = rng.Rows.Count
For i = n To 1 Step -1
With rng(i, 1)
strTmp = .Value & strDelim
Arr = Split(strTmp, strDelim)
j = UBound(Arr, 1) - 1
If j > 0 Then
.Offset(1).Resize(j).EntireRow.Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove
Set rngTmp = .Resize(j + 1)
For k = 0 To j
rngTmp(k + 1, 1).Value = Arr(k)
Next k
End If
End With
Next i
End If
Application.ScreenUpdating = True
End Sub
|
Изменено: - 03.02.2022 02:21:54
(дополнил информацию)