Excel 在QueryTables方法上,CSV导入到电子表格失败

Excel 在QueryTables方法上,CSV导入到电子表格失败,excel,excel-2010,vba,Excel,Excel 2010,Vba,我需要从CSV文件导入数据。我记录了下面的宏,但修改了QueryTablesAdd构造,以包含变量FileLoc中的文件位置。宏一直工作,直到遇到.Refresh BackgroundQuery:=false方法并在该点失败。 如果我使用该方法,代码实际上可以顺利运行。 问题是,它实际上并没有导入数据 有人有什么有用的提示吗 With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & FileLoc & Chr(34

我需要从CSV文件导入数据。我记录了下面的宏,但修改了QueryTablesAdd构造,以包含变量FileLoc中的文件位置。宏一直工作,直到遇到.Refresh BackgroundQuery:=false方法并在该点失败。 如果我使用该方法,代码实际上可以顺利运行。 问题是,它实际上并没有导入数据

有人有什么有用的提示吗

With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & FileLoc & Chr(34), Destination:=Range("$A$1"))
    .Name = "CDSTATS"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
   ' .TextFilePromptOnRefresh = False
    .TextFilePlatform = 850
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileCommaDelimiter = True
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With

为了回答这个问题:

传递变量时,即使是字符串变量,也不需要引号


per@Scott Holtzman.

为什么是Chr34。你的文件名末尾真的有双引号吗?嗨,斯科特-当我最初录制宏时,整个连接字符串都用双引号括起来。使用Chr34是复制该结构并成功连接FileLoc变量的唯一方法。它确实成功地打开了相关的CSV文件,但是当你传递一个变量,甚至一个字符串变量时,你不需要引号。所以,TEXT:myFile.csv=TEXT:&myFile当myFile=myFile.csv时我知道这可能解决不了你的问题,但我认为这是值得一提的。嗨,斯科特,你说得对,我显然把自己搞糊涂了。它不仅被很好地发现了,而且也解决了我的问题。代码现在运行得非常好。我衷心感谢你。