gpt4 book ai didi

VBA 错误 1004 - QueryTable.Add

转载 作者:行者123 更新时间:2023-12-02 17:56:56 27 4
gpt4 key购买 nike

尝试导入 csv 文件时,我在 VBA (1004) 中遇到非常奇怪的错误。

这是我的代码:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & ThisWorkbook.Path & "/" & "IJR" & ".csv", Destination _
:=Range("$A$1"))
.Name = "IJR"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMacintosh
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(3, 9, 9, 9, 9, 9, 1)
.Refresh BackgroundQuery:=False
.UseListObject = False
End With

它给了我 .Refresh BackgroundQuery:=False 上的错误。

IJR.csv IS 与我的工作簿位于同一目录中的文件。我的目录中有一堆 csv 文件。奇怪的是,当我将“IJR”更改为“AA”或“HES”(也是目录中的csv文件)时,代码有效。大多数 csv 文件名都不起作用(“USO.csv”、“AAL.csv”、“AAPL.csv”、“HD.csv”等),但其中一些可以(到目前为止只有“AA.csv”)。 csv”和“HES.csv”)。它们都是格式相同、列数相同的 csv 文件。我完全不知所措。也许我犯了一些愚蠢的错误,但我无法发现它。

另一个有用的信息:我正在运行 Excel 2016 for Mac。我有一段非常相似的代码,可以在操作系统为 Windows 的情况下运行(由于 Mac 和 Windows 的 VBA 代码存在细微差别)。它适用于每个 csv 文件,没有问题。作为引用,该代码是:

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & ThisWorkbook.Path & "\" & symb & ".csv", Destination _
:=Range("$A$1"))
.Name = symb
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(3, 9, 9, 9, 9, 9, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

2016 年 3 月 10 日更新:我让它在 Excel 2011 for Mac 中工作(通过将路径中的“/”更改为 Application.PathSeparator),但它在 Excel 2016 for Mac 中仍然执行相同的操作。可能只是新 Excel 中的一个错误。

最佳答案

我遇到了类似的问题,经过全面测试,我确信这是 Excel 2016 for Mac 中的一个大问题,并且在 2017 年 7 月 28 日尚未修复。

您可以使用的解决方法是:

  • 手动导入每个文本文件。
  • 然后删除连接(和数据)。
  • 在某个位置导入一次文件后,您可以使用 VBA 再次执行此操作。

不幸的是,这并不是真正动态的,并且在像我的文件夹实际更改的情况下不起作用。

希望有帮助。

关于VBA 错误 1004 - QueryTable.Add,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com