【问题标题】:Workbooks.OpenText doesn't take 'fieldinfo' parameterWorkbooks.OpenText 不采用“fieldinfo”参数
【发布时间】:2012-03-04 22:48:35
【问题描述】:

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

将其复制并粘贴到新的 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

执行代码。它将要求输入文件,您应该在其中使用这个分号分隔的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[...].
但这不是我的解决方案。

【问题讨论】:

    标签: vba ms-office parameter-passing excel-2003


    【解决方案1】:

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

    【讨论】:

    • 非常感谢,我花了很长时间在 .csv 文件上尝试 workbooks.opentext 并得到了不好的结果,直到我将它重命名为 .txt。这是在某处记录的吗?我在相关的 MSDN library page 中看不到对 CSV 的引用。如果我无法从 .csv 重命名文件,是否有解决方法?
    • @a.out 是的,看看这个answer。我推荐你使用 QueryTables。看看示例代码
    猜你喜欢
    • 1970-01-01
    • 2022-11-26
    • 2016-02-09
    • 2014-05-28
    • 2017-12-05
    • 2022-01-09
    • 2015-08-10
    • 2019-09-06
    • 1970-01-01
    相关资源
    最近更新 更多