Страницы: 1
RSS
Как макросом удалить пустые строки в txt файле
 
Здравствуйте, друзья.

У меня возникла проблема.
Помогите ее решить.

Имеется файл txt, и в нем табулированный текст.
И в этом файле - много пустых строк. Нужно чтобы их не было этих пустых строк, чтобы шел один только текст.

Подскажите, как макросом эксель в файле 1.txt - убрать пустые строки (то есть перезаписать тем же содержимым, но без пустых строк) ?
Файл 1.txt - лежит в той же папке, что и книга xls.
 
Открываете файл 1.txt в excel. Запускаете макрос
Код
Sub RowsDel()
    LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count   
    For r = LastRow To 1 Step -1
        If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
    Next r
End Sub
после чего сохраняете в .txt формате

 
Помогите.
 
Snegovik2, вот погуглил и первая же ссылка http://www.cyberforum.ru/visual-basic/thread1929066.html
Изменено: Ungrateful - 19.09.2019 19:38:26
 
Ungrateful, там не то.
 
Snegovik2, fа вариант из #2?
 
Юрий М, это визуал бэйсик, а не вба.
Потом мне нужно убрать не 7-ую или 10-ую пустую строку, а все.
 
Цитата
Snegovik2 написал:
это визуал бэйсик, а не вба.
Как это понять? Вы попробовали этот макрос, а он не работает?
 
Цитата
Юрий М написал:
Вы попробовали этот макрос, а он не работает?
Да, я пробовал запустить этот макрос - он не работает.
Вот прикрепляю файл с этим макросом.
 
А с чего Вы взяли, что это не VBA?
Не нашёл в Вашем файле макроса из #2.
 
Цитата
Юрий М написал:
Не нашёл в Вашем файле макроса из #2.
И тем не менее - я вас уверяю - он там.

Я скопировал его в буфер обмена из сообщения #2, воспроизведя нажатие клавиш Ctrl+C
Затем я создал пустой модуль в своем файле и произвел нажатие сочетания клавиш Ctrl+V
Навесил этот макрос на свою кнопку и поместил текстовый файл по указанному в макросе адресу.

Не работает.
 
Цитата
Snegovik2 написал:
я вас уверяю - он там
Вот что там:
Код
Sub Макрос1()
' Перезапись файла с удалением строки
Dim St(10) As String
Open "c:\1.txt" For Input As #1
    Dim S As String
    While Not EOF(1)
        n = n + 1
        Input #1, S
        St(n) = S
    Wend
Close #1
 
Open "c:\1.txt" For Output As #1
    For i = 1 To 10
        If i <> 7 Then ' Убираем 7-ю строку
            Print #1, St(i)
        End If
    
    Next
Close #1
End Sub
 
Юрий М, вы вот этот код имеете ввиду (из сообщения #2) ?
Код
Sub RowsDel()
    LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count   
    For r = LastRow To 1 Step -1
        If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
    Next r
End Sub
Но я не могу его протестировать, он же не открывает и не записывает файл txt.
 
Цитата
Snegovik2 написал:
вы вот этот код имеете ввиду (из сообщения #2) ?
А в #2 есть другой код?
 
Цитата
Андрей_26 написал:
Открываете файл 1.txt в excel. Запускаете макрос
- эта строка осталась непрочитанной?
 
Hugo, так как же его открыть ?
 
Да как угодно. Но лучше контролируя процесс через импорт внешних данных.
 
Помогите, форумчане.
 
открываете Excel - Данные - Из текста
Изменено: Андрей_26 - 20.09.2019 09:16:47
Страницы: 1
Наверх