Мне нужно делать запросы с перепиской, но я действительно придерживался имен запросов и должен каждый раз менять их вручную, например, Name_1, Name_2 и c. Оригинальный код выглядит следующим образом:
ActiveWorkbook.Queries.Add Name:="Name_1", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Folder.Files(""C:\EXCHANGER\LastStage BOX"")
Sheets.Add After:=Sheets(1)
Sheets(2).Name = "INDEX"
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Name_1"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Name_1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Name_1"
.Refresh BackgroundQuery:=False
End With
Том делает его динамичным c, я пришел с чем-то вроде этого
Dim i As Integer
i = 1
ActiveWorkbook.Queries.Add Name:=i, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Folder.Files(""C:\EXCHANGER\LastStage BOX"")
Sheets.Add After:=Sheets(1)
Sheets(2).Name = "INDEX"
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=i;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [i]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = i
.Refresh BackgroundQuery:=False
End
и код катится нормально, пока не достигнет
.ListObject.DisplayName = i
, которая работает только со строками. Любой способ обойти это, пожалуйста?