【问题标题】:Extract data from pipe "|" delimited text file to new excel workbook - worksheet.从管道“|”中提取数据分隔文本文件到新的 Excel 工作簿 - 工作表。
【发布时间】:2023-03-23 19:28:01
【问题描述】:

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

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

到目前为止开发的宏的代码sn-p-

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 文件以此类推,在另外两个工作表中。

【问题讨论】:

    标签: vba excel macros


    【解决方案1】:

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

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

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

    【讨论】:

    • 此代码将在 sheet1 中打印预期数据但是我如何在同一工作簿的新工作表中获取下一个 TXT 文件数据(即 NewBook 的 SHEET2)等等我有 3 个文本文件,我有在同一工作簿的单独工作表中打印每个 txt 文件数据...在此先感谢
    • Vivek 第一次有点棘手,但别担心,试试这个:code
    • Sub test() Set new1 = Workbooks.Add With newW1 Sheets("Sheet1").Select Cells(1, 1) = "book1 sheet 1" Sheets("Sheet2").Select Cells( 1, 1) = "book1 sheet 2" End With Set new2 = Workbooks.Add With newW1 Sheets("Sheet1").Select Cells(1, 1) = "book2 sheet 1" Sheets("Sheet2").Select Cells( 1, 1) = "book2 sheet 2" End With ' ThisWorkbook.Activate ThisWorkbook.Sheets("Sheet1").Cells(1, 1) = "Now I'm in the master book" End Sub
    【解决方案2】:

    您应该创建一个新的工作簿,并为每个工作表添加一个QueryTableQueryTables 包含此 Worksheet

    的集合

    "TEXT;Test.txt"

    作为Add的第一个参数,用于您的文件类型和名称,Range("A1") 作为一个简单的目标范围。

    看看网上很多例子如何处理QueryTable属性。在您的情况下, TextFileOtherDelimiter 是应该定义管道 | 的位置。

    然后在这个 QueryTable 上调用 refresh(false)delete

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2022-08-22
    相关资源
    最近更新 更多