Страница 1 из 1

Как убрать перенос строки?

Добавлено: 11 мар 2008, 12:42
vovabraga
Подскажите:
Есть запись в ячейке excel:

Текст \n
дальше ... \n
и еще \n

Задача: как убарть символы переноса строки, так чтобы текст приобел вид:

Текст дальше ... и еще

Повторюсь, текст находится в ОДНОЙ ячейке!

И еще, пытался попробовать сделать Replace , ничего не получилось, но символ "\n", ни, как писали в инете - "^|"?!
Что подскажите?

Re: Как убрать перенос строки?

Добавлено: 11 мар 2008, 14:22
SAS888
Вы убираете "\n", но не убираете перенос строки. Нужно так:
Пусть ячейка A1 содержит данный текст, тогда в A2, с помощью кода, приведенного ниже, получим:

Код: Выделить всё

Sub Repl()

    Dim MyString As String
    MyString = Replace(Range("A1"), "\n", "", 1)
    Range("A2") = Replace(MyString, Chr(10), "", 1)
    
End Sub

Re: Как убрать перенос строки?

Добавлено: 11 мар 2008, 15:58
vovabraga
Спасибо!
Все работает, но, правда, есть два исключения.
Почему-то не убирает перенос, сейчас буду проверять.

Re: Как убрать перенос строки?

Добавлено: 11 мар 2008, 16:18
VictorM
да не, вроде все убирает...
только если хотите изменить текст именно в ячейке А1, в макросе SAS888 измените:

Код: Выделить всё

Sub Repl()

    Dim MyString As String
    MyString = Replace(Range("A1"), "\n", "", 1)
    Range("[B]A1[/B]") = Replace(MyString, Chr(10), " ", 1) 'пробелы между словами
    
End Sub

Re: Как убрать перенос строки?

Добавлено: 11 мар 2008, 16:26
vovabraga
У меня все сложнее.
Имеется файл экселевский, там в ячейках написано по разному (в том числе и с переносами).
А я все перевожу в текстовый файл и каждую ячейку в одну строчку.
Все прошло ок, но 2 ячейки не захотело преобразовать, может там другой символ попадается ?
как это узнать ?

Re: Как убрать перенос строки?

Добавлено: 12 мар 2008, 05:12
SAS888
Наличие служебных кодов в строке можно проверить, например, так:
Пусть в ячейке A1 находится текстовая строка. С помощью макроса, вставим построчно в столбец "B" все символы строки, а в столбец "C" - коды этих символов. Все будет наглядно и понятно, что делать дальше.

Код: Выделить всё

Sub Test()
    Dim i As Integer
    For i = 1 To Len(Range("A1"))
        Cells(i, "B") = Mid(Range("A1"), i, 1)
        Cells(i, "C") = Asc(Cells(i, "B"))
    Next
End Sub