从pipe道“|”分隔的文本文件提取数据到新的Excel工作簿 – 工作表。

我已经使用下面的代码将数据从文本分隔文件转换为Excel工作簿,但它将其存储在活动工作簿,而不是新的工作簿工作表。

我有3个文本文件,我需要将这三个文本文件的数据合并到一个新的工作簿中,分三个不同的工作表。

迄今为止开发的macros的代码片段 –

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,等等,其他两个t文件,另外两个表单。

你有2种方法。 首先,您可以创build一个新的工作簿并在Opentext代码中引用它:

 Set NewBook = Workbooks.Add With NewBook ..openText End With 

另一方面,有点丑陋和缓慢的是从工作簿复制到NewBook。 为什么这个? 因为您可以提高对ThisWorkbook和ActiveWorkbook之间差异的理解。

您应该创build一个新的工作簿 ,并与每个工作表添加一个QueryTable在该工作表QueryTables集合中

“TEXT; Test.txt的”

作为文件types和名称的添加的第一个参数, 范围(“A1”)作为一个简单的目标范围。

看看互联网上的很多例子如何处理QueryTable属性。 你的情况TextFileOtherDelimiter是你的pipe道| 应该被定义。

然后调用refresh(false)删除这个QueryTable。