VBA:只导入csv文件的选定列

使用VBA我从Yahoo Finance导入一个csv文件到excel中,每行包含7个逗号分隔值。 我只想导入每行的第一个和第五个逗号分隔值。 目前我导入整个csv,提取到列,然后删除不需要的列。 但是,这不足以用于此导入的未来使用。 我怎样才能select我想要导入的列?

当前代码:

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" 

您可以将一个数组作为FieldInfo参数提供给TextToColumns

这会隐藏2,3,4,6,7列

.TextToColumns FieldInfo := Array(Array(1, 1), Array(2, 9), Array(3, 9), Array(4, 9), Array(5, 1), Array(6, 9), Array(7, 9))

1 = xlGeneralFormat
9 = xlSkipColumn