Страницы: 1
RSS
Нужен макрос мастера импорта текста
 
Доброго времени суток, Друзья!
Выручайте
Нужен макрос по мастеру импорта текста
Очень много текста необходимо перевести в эксель и работа жесть как утомляет
Но я в VBA вообще ничего не понимаю...вот и прошу у вас помощи
Делаю все по всем знакомой методике
Нажимаю Использовать мастер импорта текста...на 1-м шаге ничего не меняю, оставляю с разделителями и начать импорт с 1-й строки...Далее...на втором шаге тоже все без изменений, разделители пробел...Далее...по умолчанию формат данных столбца установлен как Общий, а необходим Текст...т.к. импортируемых столбцов 19, приходиться все их перетыкивать(слова уже другого нет) на Текст
Скажите пожалуйста, возможно ли создать макрос чтобы он делал все те же манипуляции что и мастер по импорту текста, только на третьем шаге импортируемые данные делал Текстом?
Заранее всем спасибо
 
Включите макрорекордер, выполните все перечисленные действия, остановите рекордер - макрос готов.
 
Спасибо Юрий М
Сделал, вывел кнопку
Теперь при нажатии появляется ошибка 424
сам макрос получился вот такой
Код
Sub Macro9()
'
' Macro9 Макрос
'


'
    ThemeEffectScheme.PasteSpecial Format:="Текст", Link:=False, DisplayAsIcon _
        :=False
End Sub
 
См.
 
Цитата
Aleksey.g84 написал:
много текста необходимо перевести в эксель
Много файлов или много текста в одном файле?
 
Мотя, так я все так и делаю....просто данных очень много и они есть каждый день...ко всей картине повторю...импортируется 19 столбцов и каждый перетыкивать ну пипец как тяжело
 
Цитата
Aleksey.g84 написал:
19 столбцов и каждый перетыкивать ну....
Выделите все Ваши столбцы и один раз выберите формат "Текстовый"!
 
Мотя, если бы было все так легко, то и макрос не понадобился....только вот в значениях встречаются такие данные как 1.06 к примеру...что в дальнейшем в общем формате меняется на 1 июня....а изначально скопированный текст в буфере храниться в одну строчку и вставить его получается только через мастер....
 
Покажите "кусок" файла.
 
Мотя, так он пустой....вам пустой эксель отправить?
Можно любой текст из интрнета скопировать и импортировать
 
Цитата
Aleksey.g84 написал:
Можно любой текст из интрнета скопировать и импортировать
Aleksey.g84, потенциальные помощники ещё должны искать текст на Ваши 19 столбцов? Вам трудно предоставить образец текста?
 
Цитата
Aleksey.g84 написал:
так он пустой....вам пустой эксель отправить?
Повеселили, однако... :D
Цитата
Aleksey.g84 написал:
только вот в значениях встречаются такие данные как 1.06 к примеру...что в дальнейшем в общем формате меняется на 1 июня....
Нужен "кусок" Вашего текстовика!
 
Юрий М, Мотя...пожалуйста пожалуйста
На Листе1 начальный формат
на Листе2 конечный....тот что необходим
Спасибо
 
Ваш текстовик распрекрасно-хорошо при импорте повторяет Ваш лист 2!
 
Цитата
Aleksey.g84 написал:
просто данных очень много и они есть каждый день...
Поэтому Вам нужен макрос?
 
Мотя, может быть сами прекрасно попробуете?
Вот с этого файла берутся данные
 
См.
 
Мотя, а вот у меня почему-то по каким-то фантастическим манипуляциям получается вот так.....
делаю импорт через мастера....сделал, потом все выделяю и меняю общий формат на текстовый
 
См.
 
В шаге 3-3 я выделила все столбы за "1 раз"!
 
Вы так и не ответили: макрос нужен потому, что каждый день много файлов-текстовиков?
 
Мотя, тоже получилось выделить....через SHIFT, файлов в среднем от 50 штук
 
Цитата
Aleksey.g84 написал:
тоже получилось выделить....через SHIFT
Замечательно!
Цитата
Aleksey.g84 написал:
файлов в среднем от 50 штук
В таком разе - макрос необходим.
Возможен алгоритм:
1. Текстовики - все в одной папке.
2. Макрос сам создаст папку с xls-файлами. Имена файлов-текстовиков и xls-файлов - одинаковы.
 
Мотя, к сожалению тут целые танцы с бубном
В идеале нужен парсер)))
но т.к. я и в обычном экселе Гусь...не говоря уже о VBA приходится делать вот так
сайт защищен от выделения и копирования, приходится нажимать CTRL+P, далее в окне печати я вижу предварительный просмотр документа....вот здесь я и копирую информацию, потом это все дело в текстовый редактор, а вот потом в эксель....а если быть точнее в xlsm....
само собой был бы счастлив если бы текстовики сами ко мне приходили без таких изощренных способов копирования)))) но с этим ничего не сделать, приходится копировать...информация не авторская, но создатель сайта почему-то решил не оставлять возможности копирования
 
а т.к. я пока не встречал людей которые с легкостью сказать...да конечно...давай сделаем тебе парсер...вот по этой причине и попросил помочь с созданием макроса
 
Цитата
Aleksey.g84 написал:
тут целые танцы с бубном
Действительно - пляски!
Цитата
Aleksey.g84 написал:
В идеале нужен парсер)))
Желаю удачи!
Цитата
Aleksey.g84 написал:
импортируемых столбцов 19, приходиться все их перетыкивать(слова уже другого нет) на Текст
Теперь это не придется делать: SHIFT Вам поможет!  :D
 
Спасибо большое...буду пока SHIFTом пользоваться)))
 
См.: макрос.
P.S.
Ограничение: работает на 19 столбов.  ;)  
 
Аналог макроса от пользователя Мотя,
Файл с макросом помещаете в отдельную папку, текстовые файлы кидаете в ту же папку, преобразованные файлы будут сохраняться в формате .xlsx все
в той же папке :)
Код
Option Explicit
Sub Text_Exl()
Dim collFnames As New Collection
Dim fname$, itrek$, ikey
Dim book As Workbook, arr$()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
itrek = ActiveWorkbook.Path & "\"
fname = Dir(itrek & "*.txt")
If fname = "" Then Exit Sub
Do
    collFnames.Add fname, fname
    fname = Dir
Loop Until fname = ""
For Each ikey In collFnames
    arr = Split(ikey, ".")
    Workbooks.OpenText Filename:=itrek & ikey, DataType:=xlDelimited, _
    Space:=True, ConsecutiveDelimiter:=True, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), _
    Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), _
    Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), _
    Array(14, 2), Array(15, 2), Array(16, 2), Array(17, 2), Array(18, 2), Array(19, 2))
    Set book = ActiveWorkbook
    With book
        .Sheets(1).Cells.EntireColumn.AutoFit
        .SaveAs Filename:=itrek & arr(0), FileFormat:=xlNormal
        .Sheets(1).Name = "text"
        .Close True
    End With
Next ikey
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Изменено: Nordheim - 05.07.2017 15:32:09
"Все гениальное просто, а все простое гениально!!!"
 
Мотя, Nordheim, спасибо вам большое)
Страницы: 1
Читают тему
Наверх