打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA:opentext方法处理处理txt文件数据
userphoto

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


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Excel常见宏命令详解
自学资料(Excel VBA)[收集整理14]
Workbook对象应用大全
VBA笔记10:技巧与案例
Excel VBA入门(九)操作工作薄
搜集各种Excel VBA的命令供参考!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服