分享

VBA:opentext方法处理处理txt文件数据

 L罗乐 2017-12-17

有txt文件,打开,数据如下:

现要对其使用vba对其进行数据处理。

套路如下:

1、opentext方法打开txt文件

2、打开txt文件的方式会是excel工作簿

3、将txt文件的数据放到数组,然后处理。



代码如下:

Sub opentxt()

    Dim arr

    Workbooks.OpenText Filename:=ThisWorkbook.Path & '\示例数据.txt', Space:=True

    arr = ActiveWorkbook.Sheets('示例数据').[a1].CurrentRegion.Value

    ActiveWorkbook.Close False

    Stop

End Sub


1、OpenText代码打开txt文件

Workbooks.OpenText Filename:=ThisWorkbook.Path & '\示例数据.txt', Space:=True

因为txt文件数据的分隔符是空格,也就是space,所以Space:=True,用excel打开的时候会自动将其分列。结果如下:工作表的名称和txt文件的名称一样。

2、然后将数据放进数组

arr = ActiveWorkbook.Sheets('示例数据').[a1].CurrentRegion.Value

结果如下:

3、关闭当前活动工作簿,不保存更改。

ActiveWorkbook.Close False

4、对内存中的数组arr进行处理即可。

至此结束,用opentext方法处理txt文件就是这样的套路。

现在假如要筛选txt中文件第3列不为0的数据。代码如下。

Sub opentxt()

    Dim arr

    Application.ScreenUpdating = False '关闭屏幕刷新

    '打开txt文件

    Workbooks.OpenText Filename:=ThisWorkbook.Path & '\示例数据.txt', Space:=True

    '将txt文件数据放到数组

    arr = ActiveWorkbook.Sheets('示例数据').[a1].CurrentRegion.Value

    ActiveWorkbook.Close False '关闭活动工作簿

    '处理数据

    For i = 1 To UBound(arr)

        If arr(i, 3) <> 0 Then

            k = k 1

            For j = 1 To 3

                arr(k, j) = arr(i, j)

            Next

        End If

    Next

    '输出数据

    With ThisWorkbook.Sheets('sheet1')

        .Cells.ClearContents

        .[a1].Resize(k, 3) = arr

    End With

    Application.ScreenUpdating = True

End Sub

结果:


Workbooks.OpenText 方法 (Excel)参考链接:

https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/workbooks-opentext-method-excel


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多