想知道是否有办法做到这一点。我希望将多个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
最大的问题是有没有办法在任何一条路线上做我正在寻求的东西,还是有另一种方法来实现这一点,我不知道? 感谢