Workbooks.OpenText 不采用“fieldinfo”参数

nix*_*xda 5 vba parameter-passing ms-office excel-2003

以下代码演示了问题标题中所述的问题。

将其复制并粘贴到新的 Microsoft Excel 2003 工作簿中。

Sub mytest()
    mypath = Application.GetSaveAsFilename()

    Workbooks.OpenText Filename:=mypath, DataType:=xlDelimited, _ 
        TextQualifier:=xlTextQualifierDoubleQuote, _ 
        semicolon:=True, _ 
        fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)), _ 
        Local:=True
End Sub
Run Code Online (Sandbox Code Playgroud)

执行代码。它将要求输入文件,您应该在其中使用此分号分隔的test.csv。它创建一个新工作簿并将所有数据从 test.csv 导入到 sheet1。

下图显示了结果
在此处输入图片说明

但它应该显示这样的结果
在此处输入图片说明


fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))
声明 Excel 应将所有导入的数据视为文本。不幸的是它没有。

有人可以告诉我如何以正确的方式使用 opentext 和 fieldinfo 吗?

我已经知道 QueryTables.Add(Connection[...]
的解决方法。但这不是我的情况的解决方案。

nix*_*xda 5

如果您将输入文件中的扩展名从 .csv 重命名为 .txt,则fieldinfo参数按设计工作。

  • 非常感谢,我花了很长时间在 .csv 文件上尝试 `workbooks.opentext`,结果很糟糕,直到我将它重命名为 .txt。这是在某处记录的吗?我在相关的 MSDN [图书馆页面](http://bit.ly/14uzq3z) 中看不到对 CSV 的引用。如果我无法从 .csv 重命名文件,是否有解决方法? (2认同)