Excel Power Query with VBA-Textdata与每个数据的新工作表

Excel Power Query with VBA-Textdata与每个数据的新工作表,excel,vba,text,import,powerquery,Excel,Vba,Text,Import,Powerquery,我需要Excel VBA的帮助。我想将一些文本文件导入我的Excel工作表,我想用VBA将其自动化,因为我有很多数据要导入,这将节省我的时间 所有文本文件都是相同的。我想将一个文件导入到工作表中,然后创建一个新工作表并导入新工作表中的下一个文件。此过程应持续到所有数据导入为止。所以每个文本文件都需要一个新的Excel表格。所有这些都应该在VBA中自动运行。我只想启动makro,然后它开始工作。问题是,我无法构建这样的VBA代码。但是我试过了 以下是我已经拥有的: Sub A() With

我需要Excel VBA的帮助。我想将一些文本文件导入我的Excel工作表,我想用VBA将其自动化,因为我有很多数据要导入,这将节省我的时间

所有文本文件都是相同的。我想将一个文件导入到工作表中,然后创建一个新工作表并导入新工作表中的下一个文件。此过程应持续到所有数据导入为止。所以每个文本文件都需要一个新的Excel表格。所有这些都应该在VBA中自动运行。我只想启动makro,然后它开始工作。问题是,我无法构建这样的VBA代码。但是我试过了

以下是我已经拥有的:

Sub A()
   With Application.FileDialog(msoFileDialogOpen)
      If .Show Then Sheets.Add , Sheets(Sheets.Count), , .SelectedItems(1)
    End With
End Sub

Sub B()

With Application.FileDialog(msoFileDialogFilePicker)

    .AllowMultiSelect = True

    .InitialFileName = "C:\Users\Thoma\Desktop\Test\*.txt"

    If .Show Then

        For Each f In .SelectedItems

            Sheets.Add , Sheets(Sheets.Count), , f

        Next f

    End If

End With

End Sub
此代码打开Windows资源管理器,然后您可以选择多个文本文件。然后,它会将每个文件加载到新的Excel工作表中。问题是,它不使用Power Query,因此与文件夹中的文件没有数据连接,我无法刷新它们。而且它会将所有数据导入到第一列,这并不好,因为它需要在单独的列中

我还有这个代码:

Sub Makro1()
'
' Makro1 Makro
'

'
    ActiveWorkbook.Queries.Add Name:="aacg us", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Csv.Document(File.Contents(""C:\Users\Thoma\Downloads\Neuer Ordner\aacg.us.txt""),[Delimiter="","", Columns=10, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & "    #""Höher gestufte Header"" = Table.PromoteHeaders(Quelle, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Analysierte JSON"" = Table.TransformColumns(#""Höher gestufte Header"",{{""<OPEN>"", Json.Docum" & _
        "ent}, {""<HIGH>"", Json.Document}, {""<LOW>"", Json.Document}, {""<CLOSE>"", Json.Document}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Analysierte JSON"""
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""aacg us"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [aacg us]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "aacg_us"
        .Refresh BackgroundQuery:=False
    End With
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
    Sheets.Add After:=ActiveSheet
End Sub
我用makro录音机制作了这个。它打开一个名为accg.us的文件,并创建一个Power查询表。完成此操作后,它将添加一个新的工作表。这一个的问题是,它将只加载文件accg.us,而不是完整的文件夹

所以我需要以某种方式组合booth,但我不知道如何组合

以下是一些示例数据: