Прокрутите папку с файлами .TXT и скопируйте их содержимое. - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь автоматизировать следующее:

  1. Открыть .TXT файл
  2. Выбрать все
  3. Копировать
  4. Вставить на лист Excel
  5. Повторите

У меня есть 150 текстовых файлов в каталоге, которые я хотел бы открыть, скопировать все содержимое и вставить на лист Excel со смещением 'c'

Каждый файл имеет ровно 95 строк, поэтому после вставки C:\myDir\MyFile1 в A1, например. Я хочу вставить содержимое следующего файла .txt в A101.

Пока я собрал несколько битов кода:

Sub LoopThroughFiles()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim StrFile As String
    Dim C as integer
    StrFile = Dir("E:\my path")

    Do While Len(StrFile) > 0
        Workbooks.Open(StrFile)
        Workbook.Sheets(1).Cells.Copy ws.range("A"& c)
        Workbook.Close
        C = C + 100     'Each txt file = 95 rows
        StrFile = Dir
    Loop
End Sub

Хотя этот список не повторяется.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Только что добавили переменную для рабочей книги, которая содержит рабочую книгу csvWb и объединяет folder (в случае, если файл excel отсутствует в папке). Кроме того, Excel не любит копировать несколько целых листов, которые перекрываются в цели, поэтому давайте ограничимся Rows("1:95") (что экономит память и время). Намеренно опущена любая обработка ошибок (файлы могут быть заблокированы), чтобы пример был коротким.

Sub LoopThroughFiles()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim StrFile As String
    Dim C As Integer
    Dim csvWb As Workbook
    Dim folder As String
    folder = "E:\my path\"
    StrFile = Dir(folder)

    Set ws = ThisWorkbook.ActiveSheet
    C = 1
    Do While Len(StrFile) > 0
        Set csvWb = Workbooks.Open(folder & StrFile)
        csvWb.Sheets(1).Rows("1:95").Copy ws.Range("A" & C) 'Each txt file = 95 rows
        csvWb.Close
        C = C + 100     'Each txt file = 95 rows
        StrFile = Dir
    Loop
End Sub
0 голосов
/ 06 ноября 2018

Вам следует изучить возможность использования надстройки Excel «Power Query» (в Excel 2016 она включена в продукт по умолчанию). С Power Query вы сможете просто выбрать папку, в которой находятся ваши файлы, и очень легко добавлять все данные без необходимости кодирования. При необходимости вы также можете изменить данные один раз в редакторе Power Query.

Power Query

пример объединения 2 файлов

Пользовательский интерфейс Power Query

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...