从管道中提取数据" |"分隔的文本文件到新的Excel工作簿 - 工作表。

时间:2016-11-07 11:26:00

标签: excel vba excel-vba macros

我使用下面的代码将数据从文本分隔文件转换为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,依旧等等其他两个文件,另外两张。

2 个答案:

答案 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)删除

相关问题