Изменить разделитель строк для определенного столбца в Excel

У меня есть файл excel, который содержит данные, как показано ниже.

+-------+----------+-------------------------+-----------+
| ID    | Material | Description             | Attribute |
+-------+----------+-------------------------+-----------+
| 10189 | Plate    | Dia.650mm 3-blade       | TK-BL     |
+-------+----------+-------------------------+-----------+
| 11189 | Nut      | MatType:A,C,M           | TK-OP     |
|       |          | Drive:HollowShaft       |           |
|       |          | Seal:PreparedForWelding |           |
+-------+----------+-------------------------+-----------+
| 12189 | Screw    | Wave1Batch1             | TK-MJ     |
+-------+----------+-------------------------+-----------+
| 13189 | Bolt     | 387L-2MM                | TK-MK     |
+-------+----------+-------------------------+-----------+

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

ID                      Material    Description         Attribute
10189                   Plate       Dia.650mm 3-blade   TK-BL
11189                   Nut         MatType:A,C,M   
Drive:HollowShaft           
Seal:PreparedForWelding TK-OP       
12189                   Screw       Wave1Batch1         TK-MJ
13189                   Bolt        387L-2MM            TK-MK

Поскольку в описании есть новая строка, она рассматривается как следующая строка при преобразовании. Как этого избежать? У меня есть 1000 значений, подобных этому, в моем excel. Я попытался заменить \n на | для столбца описания, но он показал, что Excel не может найти совпадение. Пожалуйста, предложите какое-то решение, чтобы избежать этой ситуации.

Вот скриншот после попытки Ctrl+J

введите здесь описание изображения


person Avinash    schedule 20.05.2020    source источник
comment
Смотрите отредактированный ответ.   -  person Naresh    schedule 20.05.2020


Ответы (2)


используйте ctrl+H, чтобы заменить "ctrl+enter" пробелом или другим символом, таким как "/" или "|"

person Anabas    schedule 20.05.2020
comment
Когда я нажимаю ctrl+enter, я получаю сообщение об ошибке: «Мы не смогли найти то, что вы ищете». - person Avinash; 20.05.2020
comment
на самом деле, правильный путь - Alt + 10 (число, которое находится в области клавиатуры), я не уверен, что ваш ноутбук все еще хранит его. Поэтому я предлагаю вам использовать crtl+enter, это работает на моем ноутбуке. Здесь предложите другой способ, в столбце E используйте =SUBSTITUTE(C1,CHAR(10),""), перетащите формулу. чтобы получить чистые слова без Alt+Enter. затем скопируйте и вставьте его в столбец c по специальному значению. - person Anabas; 20.05.2020
comment
Спасибо. На данный момент я заключил двойную кавычку для этого столбца, и это решило проблему. И да, SUBSTITUTE кажется альтернативным вариантом. Спасибо и за это. +1 - person Avinash; 20.05.2020

Я думаю, что они представляют собой обернутые текстовые ячейки. Если так,

Используйте диалоговое окно поиска и замены.

В поле поиска введите Ctrl+J. Ничего не появится. Будь как будет.

В поле «Заменить» введите пробел

Затем нажмите Заменить все

Все разрывы строк в ячейках будут заменены пробелами. Следовательно, рекомендуйте это только перед сохранением в виде текста. Затем вы можете отменить или закрыть Excel без дальнейшего сохранения.

EDIT Не уверен, какой символ мы хотим заменить. Мы можем использовать VBA, чтобы найти его и заменить в VBA. Но помните, что процедура VBA не может быть отменена. Так что лучше сделать копию книги, если требуется.

Скопируйте функцию в модуль VBA.

Public Function asciien(s As String) As String
' Returns the string to its respective ascii numbers
   Dim i As Integer
   For i = 1 To Len(s)
      asciien = asciien & CStr(Asc(Mid(s, i, 1)))
   Next i
End Function

Используйте следующую процедуру, чтобы найти asciien для этой ячейки.

Sub test()
Debug.Print asciien(Range("C3"))
End Sub

Попробуйте найти asciien для разрыва строки. Используйте следующую процедуру, чтобы заменить asciien на "|" во весь лист.

Sub Macro1()
    Cells.Replace What:=Chr(10), Replacement:="|", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:=Chr(13), Replacement:="|", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

Ссылка link1 и link2

person Naresh    schedule 20.05.2020
comment
Спасибо. Но это говорит Microsoft cannot find match - person Avinash; 20.05.2020
comment
Попробуйте обновить свой вопрос, указав пример снимка экрана с данными. - person Naresh; 20.05.2020
comment
Сделанный. Пожалуйста, посмотрите - person Avinash; 20.05.2020
comment
Спасибо. На данный момент я заключил двойную кавычку для этого столбца, и это решило проблему. +1 за ваши усилия и помощь. - person Avinash; 20.05.2020
comment
Рад вот этому. Вот как мы узнаем из обсуждения проблемы Excel здесь. - person Naresh; 20.05.2020