使用VBA向数据模型添加文本数据连接

时间:2016-11-11 20:46:51

标签: excel-vba data-connections vba excel

想知道是否有办法做到这一点。我希望将多个csv文件添加到单个文件数据模型中。我已经尝试了Listobjects方法和查询ables方法,每个方法似乎都达不到我的需要。 Listobjects成功添加了与模型的连接,但是要通过此方法添加连接,我必须通过AddFromFile连接进行文本导入向导设置,因为它需要分隔指令。由于文件是从多个文件中提取的,并且需要在多个桌面上使用,因此每次设置与向导的连接都会使此方法不可行。无论如何编码文本导入向导部分?该命令的函数属性似乎不允许它。另一种方法是查询表,成功地将数据集添加到我当前的文件中,而不是将数据添加到单个文件数据模型中。有人可以接受并在事后将其添加到数据模型中吗?我没有看到编码的方法吗?

以下两个示例都是仅提取一个文件的静态示例。我的目的是让我的特定问题的示例简单,而不是显示变量和For循环,我会设置级联多个文件的导入。

列出对象代码示例:

ThisWorkbook.Connections.AddFromFile _
    "C:\Computer\User\Project\Data\Test1.csv", True, False
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
    Connections("Test1"), Destination:=Range("$A$1")).TableObject
    .RowNumbers = False
    .PreserveFormatting = True
    .RefreshStyle = 1
    .AdjustColumnWidth = True
    .ListObject.DisplayName = "Test1"
    .Refresh
End With

Querytables代码示例:

With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & "C:\Computer\User\Project\Data\Test1.csv", Destination:=Range("$A$1"))
    .Name = "Test1"
    .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
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = True
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With

最大的问题是有没有办法在任何一条路线上做我正在寻求的东西,还是有另一种方法来实现这一点,我不知道? 感谢

0 个答案:

没有答案