1. 新建工作簿中不同工作表的查询query目的是为了将这三张表合并,前提是这三张表是同类型的表(同主题的表),也就是列字段相同,行不一样
2.本程序的目的是先新建三张表的query,为合并表格提供前提条件。
3.C:\Users\pc\Desktop\power pipot\表一.xlsx 中有三张同类型的表
4.目标是将新建的query加载到 D:\思斯学习\vba学习\vba练习\power pivot.xlsm 文件中
5. 不一定是三张sheet,可以是多张sheet

代码如下:
Sub 新建多个sheets的query()
Dim i As Integer, j As Integer
Dim na As String
Dim q As Queries
Workbooks.Open ("C:\Users\pc\Desktop\power pipot\表一.xlsx")
Workbooks.Open ("D:\思斯学习\vba学习\vba练习\power pivot.xlsm")
For i = 1 To Workbooks("表一.xlsx").Sheets.Count
na = Workbooks("表一.xlsx").Sheets(i).Name
Workbooks("power pivot.xlsm").Activate
Set q = ActiveWorkbook.Queries
q.Add Name:=na, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " 源 = Excel.Workbook(File.Contents(""C:\Users\pc\Desktop\power pipot\表一.xlsx""), null, true), na_Sheet = 源{[Item=" & Chr(34) & na & Chr(34) & ",Kind=""Sheet""]}[Data], 提升的标题 = Table.PromoteHeaders(na_Sheet, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & " 更改的类型 = Table.TransformColumnTypes(提升的标题,{{""汽车配件号"", type text}, {""配件名称"", type text}, {""单价"", Int64.Type}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " 更改的类型"
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$workbooks$;Location=" & na & ";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [" & na & "]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh
End With
Next i
End Sub