ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3515|回复: 3

如何使用excel vba自动读取TXT文件的最后一行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-1-17 15:03 | 显示全部楼层 |阅读模式
各位大侠,在下新手一枚,想通过excel读取txt文件中的数据,请问有啥好办法?
【实现功能】当触发数据填入任何非空数据(例如附件中excel的A/B/C/D等)后,自动读取TXT文件中的最后一行(前次已经读取的数据不变)
(编辑时因为有图片时超大,没办法只能删除了,请看附件中的内容)
     请各位大侠帮忙,不胜感激!另外,我知道坛子里有过历史的一个文件,只要改改就好了,但是我个人不大会。(我的附件中把历史文件也放进去了)请帮忙!谢谢!

自动称重数据.zip

22.28 KB, 下载次数: 11

样例文件

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-1-17 15:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
自己顶给大家看~~~

TA的精华主题

TA的得分主题

发表于 2017-1-17 18:38 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Application.ScreenUpdating = False
  3.     If Target.Column = 2 And Target.Count = 1 Then
  4.         Dim file, itxt, wtxt, ltxt, ipath, arr, n%
  5.         file = ThisWorkbook.Path & "\称重文件.txt"
  6.         Open file For Input As #1
  7.         Do While Not EOF(1)
  8.             Line Input #1, itxt
  9.             wtxt = wtxt & itxt & vbTab
  10.         Loop
  11.         Close #1
  12.         arr = Split(wtxt, vbTab): n = UBound(arr)
  13.         ltxt = arr(n - 1)
  14.         Cells(Target.Row, Target.Column + 1) = ltxt
  15.     End If
  16. Application.ScreenUpdating = True
  17. End Sub
复制代码


请测试

自动称重数据(OK).rar

27.84 KB, 下载次数: 41

TA的精华主题

TA的得分主题

发表于 2018-8-25 18:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Sub lx() '每隔1分钟运行一次这个过程
  Dim m As Integer, s As String
'MyPath = "D:\My Documents\excel\"
MyPath = ThisWorkbook.Path & "\"
myfile = Dir(MyPath & "*.txt")
Do While myfile <> ""
i = i + 1
Cells(i, 1).Value = myfile
Open MyPath & myfile For Input As #1
  Do While Not EOF(1)
  Line Input #1, s
  Cells(i, 2).Value = s
  Loop
  
Close #1
myfile = Dir
Loop
    NextTime = Now + TimeValue("00:00:03")
    Application.OnTime NextTime, "lx"
End Sub
我这是一段宏 也是读取TXT最后一行 现在是逐行扫描 很慢 我想直接到最后一行
师傅帮帮忙 谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 07:35 , Processed in 0.034762 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表