Excel импортирует данные SQL, но меняет порядок 1 столбца после импорта - PullRequest
3 голосов
/ 06 августа 2010

Я делаю импорт данных из запроса, который я создал в MS Query.Допустим, столбцы расположены в порядке A, B, C, D, E, F в редакторе запросов.После того как я сохраню запрос и верну данные в Excel, импортированные данные будут иметь новый порядок столбцов

A, B, C, F, D, E - обратите внимание, что столбец F был перемещен туда, где был D.

Есть идеи, как решить эту проблему?

Спасибо, ребята.Предположим, что переменные определены правильно, и не обращайте внимания на то, что код пытается сделать, если хотите, часть сохранения не работает

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

1 Ответ

4 голосов
/ 06 августа 2010

Есть два свойства объекта QueryTable с именами PreserveColumnInfo и PreserveFormatting, которые должны вам помочь. (Там также 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
...