将CSV直接导入ListObject

时间:2014-01-27 13:45:41

标签: excel excel-vba csv vba

我有一个CSV文件,我想将其导入表格(即ListObject)。

通常我会使用Data->导入文本文件... - 然后将结果转换为表格。但是,这会破坏连接,即用户不能简单地按下刷新并将更新的数据放入表中。

我知道我可以使用VBA(通过相同的方式,即导入数据然后创建listobject),但这仍然会破坏连接。

有没有办法在不断开连接的情况下将CSV数据导入listObject?

我试过

Sheet1.ListObjects.Add(SourceType:=xlSrcExternal, _
    Source:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.csv;Extended Properties=Text;", _
    Destination:=Range("$A$1"))

但这只会产生1004错误。

1 个答案:

答案 0 :(得分:3)

很好的问题彼得。今天我遇到了同样的问题,感谢ExcelUser.com的Charley Kid发现了最好的解决方案。

这将是一个仅限链接的答案,但摘要是您可以通过使用MS Query来获得此答案。要开始点击DATA> From Other Sources> From Microsoft Query。

此方法为文件夹中的文本文件创建一个schema.ini文件。所以基本上文件夹是你的数据库,文本文件是你的表。一旦这个文件由MS Query向导创建,我发现在文本编辑器中修改它更容易。同样,您可以为文件夹中的所有文本文件定义导入架构。

这是Charley Kid post。在得到正确的细节之前,我必须阅读几次。

这是指向MS page的链接,其中包含schema.ini设置的详细信息。

如果你有时间研究它,我会很感激你的想法,因为我打算在一个相当大的项目中使用它。