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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
vovabraga
Сообщения: 3
Зарегистрирован: 11 мар 2008, 12:36

Подскажите:
Есть запись в ячейке excel:

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

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

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

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

И еще, пытался попробовать сделать Replace , ничего не получилось, но символ "\n", ни, как писали в инете - "^|"?!
Что подскажите?
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

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

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

Sub Repl()

    Dim MyString As String
    MyString = Replace(Range("A1"), "\n", "", 1)
    Range("A2") = Replace(MyString, Chr(10), "", 1)
    
End Sub
vovabraga
Сообщения: 3
Зарегистрирован: 11 мар 2008, 12:36

Спасибо!
Все работает, но, правда, есть два исключения.
Почему-то не убирает перенос, сейчас буду проверять.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

да не, вроде все убирает...
только если хотите изменить текст именно в ячейке А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
vovabraga
Сообщения: 3
Зарегистрирован: 11 мар 2008, 12:36

У меня все сложнее.
Имеется файл экселевский, там в ячейках написано по разному (в том числе и с переносами).
А я все перевожу в текстовый файл и каждую ячейку в одну строчку.
Все прошло ок, но 2 ячейки не захотело преобразовать, может там другой символ попадается ?
как это узнать ?
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Наличие служебных кодов в строке можно проверить, например, так:
Пусть в ячейке 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
Ответить