Разделение строки / разделитель в пустой строке

#excel #vba

#excel #vba

Вопрос:

У меня есть одна ячейка, которая содержит эту информацию.

  --------- 
| ghijkl  | 
| aededd  |
|         |
| ededed  |
| ededfe  | 
|         |
| efefeef |
| efefeff |
 --------- 
  

Могу ли я разделить это на три ячейки?

  ---------  ---------  ---------   
| ghijkl  |  ededed  |  efefeef |
| aededd  |  ededfe  |  efefeff |
|         |          |          |
 --------- ---------- ---------- 
  

Я попробовал инструмент «Разделитель» и другой код VBA. Все разделяются при каждом разрыве строки. Нет разделения при пустом разрыве строки / строки.

Ответ №1:

Попробуйте ниже-

 Sub CellSplit()
Dim MyInput As String
Dim TempText As String, result As String
Dim sSplit

MyInput = Range("A1")
TempText = Replace(MyInput, Chr(10), "@")

sSplit = Split(TempText, "@@")

For i = LBound(sSplit) To UBound(sSplit)
    Cells(1, i   2) = Replace(sSplit(i), "@", Chr(10))
Next i

End Sub
  

Редактировать: для перебора по столбцу используйте подзаголовок ниже.

 Sub CellSplit()
Dim TempText As String
Dim sSplit
Dim cel As Range
Dim lRow As Long

lRow = Cells(Rows.Count, "A").End(xlUp).Row

    For Each cel In Range("A1:A" amp; lRow)
    TempText = Replace(cel, Chr(10) amp; Chr(10), "@")
    sSplit = Split(TempText, "@")
        For i = LBound(sSplit) To UBound(sSplit)
            cel.Offset(0, i   2) = sSplit(i)
        Next i
    Next cel
    
End Sub
  

Комментарии:

1. Большое вам спасибо! Знаете ли вы, как я могу выполнить цикл этого кода, чтобы запустить столбец?

2. Я действительно ценю вашу помощь, она отлично работает!

3. @ESACAWIP Теперь проверьте упрощенные коды. Если вы нашли ответ полезным, пожалуйста, отметьте его как ответ (отметьте галочкой), чтобы посетители могли понять, что ваша проблема решена.

Ответ №2:

Приведенная ниже формула выполнит эту работу.

 =FILTERXML("<data><a>"amp;SUBSTITUTE($B2,CHAR(10)amp;CHAR(10),"</a><a>")amp;"</a></data>","/data/a["amp;COLUMN()-3amp;"]")
  

Исходные данные находятся в формате B2. Значение -3 должно быть на 1 меньше номера столбца, в который вы помещаете формулу. Например, столбец E является 5-м столбцом, что означает столбец 5. Если вы помещаете формулу в столбец E, число в формуле должно быть -4.

После того, как вы вставите формулу в одну ячейку и отрегулируете индикатор столбца, вы можете скопировать формулу вправо, и она отобразит 3 (или более) разных текста без дальнейшей настройки.