Excel 在QueryTables方法上,CSV导入到电子表格失败
我需要从CSV文件导入数据。我记录了下面的宏,但修改了QueryTablesAdd构造,以包含变量FileLoc中的文件位置。宏一直工作,直到遇到.Refresh BackgroundQuery:=false方法并在该点失败。 如果我使用该方法,代码实际上可以顺利运行。 问题是,它实际上并没有导入数据 有人有什么有用的提示吗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
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时我知道这可能解决不了你的问题,但我认为这是值得一提的。嗨,斯科特,你说得对,我显然把自己搞糊涂了。它不仅被很好地发现了,而且也解决了我的问题。代码现在运行得非常好。我衷心感谢你。