Прокрутите папку и сохраните все текстовые файлы как файлы Excel (указав c форматирование) - PullRequest
0 голосов
/ 28 марта 2020

Я хочу импортировать файлы .txt из папки в Excel и сохранить их как файлы Excel.

Коды не завершены, но циклический просмотр части папки не работает в обоих из них.

Он работал один раз, но одновременно открывал слишком много папок и зависал. Мне пришлось выйти из программы без сохранения, и с тех пор она не работает.

Вот первый код:

Sub getDataFromWbs()

Dim wb As Workbook, ws As Worksheet

Set fso = CreateObject(“Scripting.FileSystemObject”)
Set fldr = fso.GetFolder("E:\MA\05_Sensordaten\Test\TEST2\")

For Each wbFile In fldr.Files
    If fso.GetExtensionName(wbFile.Name) = “.txt” Then
        Set wb = Workbooks.Open(wbFile.Path)
        wb.Close
    End If
Next wbFile

End Sub

Я получаю следующую ошибку с Set fso = CreateObject(“Scripting.FileSystemObject”)

ошибка времени выполнения 424
необходим объект

Я также попробовал подход dir:

Sub LoopImport2()

'Loop through all files in a folder

Dim FN As Variant

Application.ScreenUpdating = False

FN = Dir("E:\MA\05_Sensordaten\Test\TEST2\*.txt")

While FN <> ""

    'Insert the actions to be performed on each file

    Workbooks.OpenText Filename = FN, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
      xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
      Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
      Array(2, 1)), DecimalSeparator:=",", TrailingMinusNumbers:=True

        ActiveSheet.Name = FN
        ActiveSheet.Cells.NumberFormat = "0.00"

    'Set the FN to the next file
    FN = Dir

Wend

End Sub

и получил эту ошибку:

ошибка времени выполнения 1004 ошибка приложения или объекта

С этой частью:

Workbooks.OpenText Filename = FN, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
  xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
  Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
  Array(2, 1)), DecimalSeparator:=",", TrailingMinusNumbers:=True

1 Ответ

1 голос
/ 28 марта 2020

В вашем первом коде, пожалуйста, попробуйте:

Dim fso As Object и “Scripting.FileSystemObject” выглядят странно с двойными кавычками. Попробуйте использовать "Scripting.FileSystemObject".

Во втором, пожалуйста, измените Filename = FN на FileName:= FN.

...