![](/logo_grey.gif)
Последние записи
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
- Lazarus, проверка существования строки таблице
- BASM и record, обращение к полям записи
- Web PHP Framework Symfony
- Относительный путь для вывода картинки на html странице
- Массовое открытие гиперссылок в браузере
- Скопировать значение строки из таблицы в textarea
- Рамки для страниц отчетов
- Вывод StdOut консоли в TMemo
- Чтение из файла большого размера (нехватка памяти)
![](http://programmersclub.ru/slurm3.jpg)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
![](http://programmersclub.ru/katajpg.jpg)
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
19th
Мар
Работа с файлом через макросы (Microsoft Office Excel)
Posted by obzor under Basic, VBA, Софт
Суть вопроса такова, имеется .txt файл, его нужно открыть в exel указав путь к нему. Далее его необходимо отредактировать так, чтобы все текстовые и пустые строки были удалены. А данные из столбца в который все вставилось расформировались в отдельные. Так же необходимо чтобы строки с одинаковыми значениями в стоблцах B,C,D были удалены(одна из двух осталась).
Sub TxtRasKolbas()
Dim fn, rg As Range, rgD As Range, r As Long
fn = Application.GetOpenFilename("Txt files, *.txt", 1, "Укажите файл", MultiSelect:=False)
If fn = False Then Exit Sub
Workbooks.Open (fn)
ActiveSheet.UsedRange.Offset(, 1).FormulaR1C1 = "=trim(rc1)"
ActiveSheet.UsedRange.Copy: Cells(1, 1).PasteSpecial Paste:=xlPasteValues
Columns(2).TextToColumns Cells(1, 2), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
For Each rg In Intersect(ActiveSheet.UsedRange, Columns(2)).Cells
If IsEmpty(rg) Or (Not IsNumeric(rg)) Then If rgD Is Nothing Then Set rgD = rg Else Set rgD = Union(rgD, rg)
Next
Columns(1).Delete: If Not rgD Is Nothing Then rgD.EntireRow.Delete: r = 1
Do While Not IsEmpty(Cells(r, 3))
If WorksheetFunction.CountIf(Columns(3), Cells(r, 3)) > 1 Then Rows(r).Delete Else r = r + 1
Loop
End Sub
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
![пеллетные котлы](http://programmersclub.ru/respective.jpg)
пеллетные котлы
![пеллетный котел](http://programmersclub.ru/emtas.jpg)
Пеллетный котел Emtas
![форум программистов](http://programmersclub.ru/banf336х280.gif)
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)