Excel导入SQL数据,但导入后会更改1列的顺序

我从MS Query中创build的查询中导入数据。 可以说,查询编辑器中的列按A,B,C,D,E,F顺序排列。 一旦我保存查询,返回数据到Excel,导入的数据有一个新的列顺序

A,B,C,F,D,E – 注意F列在D处移动。

任何想法如何解决这个问题?

多谢你们。 假设variables被正确定义,并忽略代码正在尝试做什么,如果你想,保留部分不工作

For Each wks In ThisWorkbook.Worksheets Set qt = wks.QueryTables(1) qt.PreserveColumnInfo = True qt.PreserveFormatting = True If wks.Name <> "Master" And wks.Name <> "Parameters" Then wks.Range("A2:A1000").EntireRow.Copy Destination:=Worksheets("Master").Range("A65536").End(xlUp).Offset(1, 0) End If Next wks 

QueryTable对象有两个名为PreserveColumnInfoPreserveFormatting属性,它可以帮助你。 (还有AdjustColumnWidth ,但我不确定是否需要担心那个)。 您应该能够使用类似于以下的代码来帮助保存列信息:

 Sub PreserveQueryTable() Dim ws As Worksheet Dim qt As QueryTable Set ws = ActiveSheet Set qt = ws.QueryTables(0) ' <== I am not sure if this should be a ' ' 0 or a 1. I think it is a 0. ' qt.PreserveColumnInfo = True qt.PreserveFormatting = True End Sub