我使用下面的代码将数据从文本分隔文件转换为excel工作簿,但它将它存储在活动工作簿上,而不是新工作簿表。
我有3个文本文件,我需要将这三个文本文件的数据整合到一个新的工作簿中,分为三个不同的工作表。
目前为止开发的宏的代码片段 -
Dim wkbTemp As Workbook
Dim sPath As String, sName As String
sPath = strFileToOpen
sName = "Test.txt"
Workbooks.OpenText Filename:=sPath, _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=False, Space:=False, Other:=True, OtherChar:="|"
Set wkbTemp = xlapp.xlwkbInput
Application.ScreenUpdating = False
设置wkbTemp = xlapp.xlextwkbInput - 我需要将此数据提供给新的excel工作簿 - 新工作表。例如 - sheet1,依旧等等其他两个文件,另外两张。
答案 0 :(得分:1)
你有两种方法。 首先,您可以创建一个新工作簿并在Opentext代码中引用它:
if (fig.containsPoint(PRIVATE_POINT.x, PRIVATE_POINT.y)) {
fig = fig.findMouseEventTargetAt(PRIVATE_POINT.x,
PRIVATE_POINT.y);
if (fig != null) {
return fig;
}
}
另一方面,有点丑陋和缓慢的是将工作表中的工作表复制到NewBook。为什么这个?因为您可以提高对ThisWorkbook和ActiveWorkbook之间差异的理解。
答案 1 :(得分:1)
您应该在工作簿,并且每个工作表,添加 QueryTable > 工作表的
“TEXT; Test.txt的”
作为文件类型和名称的添加的第一个参数,范围(“A1”)作为一个简单的目标范围。
查看互联网上的许多示例如何处理 QueryTable 属性。在您的情况下, TextFileOtherDelimiter 是应该定义管道 | 的地方。
然后在此QueryTable上调用刷新(false)和删除。