Страницы: 1
RSS
Макрос импорта txt из папки на лист excel, Макрос импорта txt из папки на лист excel
 
Добрый день!
Помогите пожалуйста скорректировать макрос:
По выбранным файлам раскидывает по листам с соответственными наименованиями
Как изменить на копирование значением txt один под другим на активный лист с добавлением столца = наименование файла?

Код
Sub собрать()


Dim FilesToOpen
Dim x As Integer
Application.ScreenUpdating = False
'отключаем обновление экрана для скорости
'вызываем диалог выбора файлов для импорта
    FilesToOpen = Application.GetOpenFilename _
    (FileFilter:="All files (*.*), *.*", _
    MultiSelect:=True, Title:="Files to Merge")
    
    If TypeName(FilesToOpen) = "Boolean" Then
    MsgBox "Не выбрано ни одного файла!"
     Exit Sub
    End If
    
    'проходим по всем выбранным файлам
    x = 1
    While x <= UBound(FilesToOpen)
    Set importWB = Workbooks.Open(FileName:=FilesToOpen(x))
    Sheets().Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = importWB.Name
    importWB.Close 'savechanges:=False
    x = x + 1
    Wend
    Application.ScreenUpdating = True
End Sub

Изменено: Степан Ульянов - 29.07.2022 02:43:40
 
Степан Ульянов,
попробуйте рассмотреть решение на Power Query
https://www.excel-vba.ru/chto-umeet-excel/sobrat-i-prosummirovat-dannye-iz-raznyx-fajlov-pri-pomoshhi-powerquery/
 
да в PQ всё было бы легко) но у меня есть специфика в txt файлах - множественные переносы строк которые удачнее выходит разделять когда txt просто значением вставлен
 
Цитата
Степан Ульянов написал:
множественные переносы строк которые удачнее выходит разделять когда txt просто значением вставлен
А в PQ почему это реализовать нельзя? Без примера помочь не могу.
Изменено: surkenny - 29.07.2022 13:59:55
 
surkenny, Ну вот например в PQ:
Разделяем текст по столбцам через "|", часть данных игнорируется по непонятной причине:
Изменено: Степан Ульянов - 15.08.2022 12:42:50
 
Степан Ульянов, а так норм? (путь на свой замените):
Код
let
  csv    = Csv.Document ( File.Contents ( "C:\Users\surke\Downloads\518.txt" ), [ Delimiter = "|", Encoding = 1251, Columns = 13 ] ),
  filter = Table.SelectRows ( csv, each [Column2] <> "   1    " and [Column2] <> "" )
in
  filter
 
surkenny, скажите, а вы параметр "Columns = 13" ручками дописывали?))). У меня при попытке загрузить данный файл как csv выдает такой же код, но без  "Columns = 13". Соответственно, не корректно загружает, хотя параметры файла загрузки выставляю как у вас.)
Страницы: 1
Наверх