#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 (или более) разных текста без дальнейшей настройки.