powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удалить в ячейке строки начиная со второй
14 сообщений из 14, страница 1 из 1
Удалить в ячейке строки начиная со второй
    #36883597
Zerat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!
Подскажите, пож-та, как будет выглядеть код VBA для удаления в ячейке всех строк начиная со второй. Строки разделены символом, к-й получается нажатием Alt+Enter.
Допустим, что нужно обработать все ячейки столбца А.

Нашел часть кода, по расщеплению содержимого ячейки с разделителем chr(10):

Код: plaintext
1.
For i = Cells(Rows.Count, "A").End(xlUp).Row To  1  Step - 1 
a = Split(Cells(i, "A"), Chr( 10 ))

Но не знаю как определить вторую и следующие строки ячейки для удаления...
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883661
Thermik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerat,

Может так получится? http://icqrobot.ru/Archer/2010_09_29/page_0102.html
ставим признак Символ разделитель - Новая строка, а потом удалим ненужные столбцы и обрано собирем два столбца.
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883680
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле "не можете определить"? Вы же код примерно уже написАли...
Можно так:
Код: plaintext
1.
2.
For Each c In Columns( 1 ).Cells
    c.Value = Split(c.Value, Chr( 10 ))
Next
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883739
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при чем тут split.....????


Sub test()
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
Cells(i, 1) = Mid(Cells(i, 1).Text, 1, InStr(1, Cells(i, 1).Text, Chr(10)))
Next i
End Sub
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883861
Zerat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMВ смысле "не можете определить"? Вы же код примерно уже написАли...
Можно так:
Код: plaintext
1.
2.
For Each c In Columns( 1 ).Cells
    c.Value = Split(c.Value, Chr( 10 ))
Next


Но здесь же у Вас нет операции удаления второй и последующих строк в ячейке?
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883871
Zerat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
R Dmitryпри чем тут split.....????


Sub test()
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
Cells(i, 1) = Mid(Cells(i, 1).Text, 1, InStr(1, Cells(i, 1).Text, Chr(10)))
Next i
End Sub

Спасибо. Макрос удаляет вторую и последующие строки в ячейке. Но почему он оставляет вторую строку (она пустая)?
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883954
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zerat,

Cells(i, 1) = Mid(Cells(i, 1).Text, 1, InStr(1, Cells(i, 1).Text-1, Chr(10)))
замените эту строку должно помочь
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36883960
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cells(i, 1) = Mid(Cells(i, 1).Text, 1, InStr(1, Cells(i, 1).Text, Chr(10)) - 1)
:) Не там -1 поставил, эта строка верная
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36884438
Zerat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
R DmitryCells(i, 1) = Mid(Cells(i, 1).Text, 1, InStr(1, Cells(i, 1).Text, Chr(10)) - 1)
:) Не там -1 поставил, эта строка верная

VBA ругается на эту строчку.
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36884562
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ругается потому что строк таких нет вот вам с проверкой
Sub test()
On Error GoTo error_test
Dim j&
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
j = InStr(1, Cells(i, 1).Text, Chr(10))
Cells(i, 1) = Mid(Cells(i, 1).Text, 1, j - 1)
Next i
Exit Sub
error_test:
MsgBox ("Ячеек для преобразования не обнаружено")
End Sub
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36884650
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub test()
On Error GoTo error_test
Dim j&
For i = Cells(Rows.Count, "A").End(xlUp).Row To  1  Step - 1 
j = InStr( 1 , Cells(i,  1 ).Text, Chr( 10 ))
Cells(i,  1 ) = Mid(Cells(i,  1 ).Text,  1 , j -  1 )
Next i
Exit Sub
error_test:
MsgBox ("Ячеек для преобразования не обнаружено")
End Sub
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36884765
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeratAndreTMВ смысле "не можете определить"? Вы же код примерно уже написАли...
Можно так:
Код: plaintext
1.
2.
For Each c In Columns( 1 ).Cells
    c.Value = Split(c.Value, Chr( 10 ))
Next

Но здесь же у Вас нет операции удаления второй и последующих строк в ячейке?
Вы пробовали тестировать этот код? Хотя бы поняли, что он делает?
Если непонятно - скажу: для каждой ячейки содержимое переписывается в массив (a(0) = первая строка, a(1) = вторая, a(2) = третья и т.д.), при этом обращение к этому массиву без указания индекса возвращает первое значение (a(0)), то есть только нужную нам первую строку, которую мы и записываем обратно в ячейку.
...
Рейтинг: 0 / 0
Удалить в ячейке строки начиная со второй
    #36885614
Zerat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, R Dmitry, спасибо. В итоге оба варианта работают.

AndreTM, я Ваш код действительно не запускал. Думал что Вы его не дописали. Но запустил и понял, что работает. И еще спасибо за объяснения.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Удалить в ячейке строки начиная со второй
    #39728343
Ken2487
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZeratAndreTM, R Dmitry, спасибо. В итоге оба варианта работают.

AndreTM, я Ваш код действительно не запускал. Думал что Вы его не дописали. Но запустил и понял, что работает. И еще спасибо за объяснения.

Ребят что-то не работают у меня эти коды или руки кривые, верней работает код который оставляет вторую строку пустой....
но она мешает...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удалить в ячейке строки начиная со второй
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]