Ввести таблицы запросов как отдельные части - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь перенести CSV-файл в Excel.Оригинальный способ заключается в использовании таблиц запросов.Есть ли способ пропустить столбец при добавлении?

Прямо сейчас я использую QueryTables.Add напрямую.

    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;\\some_place\some_file.csv", Destination:=Range("A4"))
                .Name = "Some_Name"
                .TextFileColumnDataTypes = Array(1)
                .TextFileCommaDelimiter = True
                .TextFileParseType = xlDelimited
                .TextFileStartRow = 2
                .AdjustColumnWidth = False
                .PreserveFormatting = True
                .Refresh BackgroundQuery:=False
    End With

Это принесет целое some_file.csv *От 1008 * до «А4», но, скажем, я хочу разбить его как столбец А на столбец Е, пропустить столбец F, а затем столбец G на столбец Z. Есть ли способ, которым я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете использовать ADODB Connection для импорта данных из ваших файлов CSV с помощью запроса SQL Select.Ниже приведен пример кода для вашей справки:

Sub ImportCSV()
Dim con As Object, rs As Object
Dim FolderPath As String, ConStr As String, Query As String

Set con = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Query = "Select A, C, D from test.csv"  ' use column names and original csv file name
FolderPath = "C:\Users\User1\Documents\"
ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FolderPath & ";Extended Properties=""text;HDR=Yes;FMT=Delimited(,)"";Persist Security Info=False"
con.Open ConStr
rs.Open Query, con

Range("A1").CopyFromRecordset rs

con.Close
Set con = Nothing
Set rs = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...