想知道是否有办法做到这一点。我希望将多个 csv 文件添加到单个文件数据模型中。我已经尝试过 Listobjects 方法和 queryables 方法,每个方法似乎都达不到我的需要。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
查询表代码示例:
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
最大的问题是有一种方法可以在任何一条路线中做我正在寻找的东西,还是有另一种我不知道的方法来完成这个?谢谢