Используя VBA, я импортирую файл csv в excel из Yahoo Finance, содержащий 7 значений, разделенных запятыми, в строке. Я хотел бы импортировать только первое и пятое значения, разделенные запятыми для каждой строки. В настоящее время я импортирую весь csv, извлекаю его в столбцы и удаляю ненужные столбцы. Однако этого недостаточно для будущего использования этого импорта. Как я могу сделать выбор столбцов, которые я хочу импортировать?VBA: импортировать только выбранные столбцы файла csv
Текущий код:
qURL = "http://ichart.finance.yahoo.com/table.csv?s=" & Symbol & "&a=" & Month(Startdate) - 1 & "&b=" & Day(Startdate) & _
"&c=" & Year(Startdate) & "&d=" & Month(Enddate) - 1 & "&e=" & Day(Enddate) & "&f=" & Year(Enddate) & "&g=" & QuoteInterval & "&ignore=.csv"
With Sheets(2).QueryTables.Add(Connection:="URL;" & qURL, Destination:=ActiveCell.Offset(1, 0))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Sheets(2).Range("A2:A" & Lastrow).TextToColumns Destination:=Sheets(2).Range("A2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, other:=False
Columns(2).EntireColumn.Delete
Columns(2).EntireColumn.Delete
Columns(2).EntireColumn.Delete
Columns(3).EntireColumn.Delete
Columns(3).EntireColumn.Delete
Range("A3:A" & Lastrow).NumberFormat = "dd mmm yy"
Range("B3:B" & Lastrow).NumberFormat = "0.00"
Я не уверен, есть ли лучшее решение, поэтому я оставляю это как комментарий, сначала удаляю столбцы из самого большого индекса, как в обратном порядке. Таким образом, удаление столбца будет намного чище. Вы не будете иметь несколько столбцов (2) 'и' Столбцы (3) '. Просто сделайте удаление 7,6,4,3,2. – Bmo