ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA读取txt文件中数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-15 10:22 | 显示全部楼层 |阅读模式
想逐行读取txt中的数据块中画圈的那一列的数据,讲读取出来的数据放入excel的一列当中,画圈的数据见截图,具体数据见附件。在线等,谢谢各位哥哥姐姐了。

所需要的数据

所需要的数据

数据.rar

2.19 KB, 下载次数: 399

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-15 10:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
自己顶一个 别沉了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-15 10:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-15 12:38 | 显示全部楼层

我弄了一个,你试一下.

代码部分如下.

Sub Macro1()

Application.DisplayAlerts = False '关闭报警

Dim arr, string1 As String, i

Open "D:\Downdown\VB\网页帮助\数据\数据.txt" For Input As #1 '打开文本文件

string1 = StrConv(InputB(LOF(1), 1), vbUnicode)

arr = Split(string1, ".,")


For i = 1 To UBound(arr)

Cells(i, 1).Value = Split(arr(i), ",")(0)

Next

Close #1 '关闭文件

End Sub

数据.rar

15.72 KB, 下载次数: 228

TA的精华主题

TA的得分主题

发表于 2011-7-15 14:14 | 显示全部楼层

或者这样排列

  1. Sub tqwb()
  2. Dim a() As String, b() As String, i&, r%, Arr1(), ks, js
  3. Dim x&, Brr, aa, j&, m&, ii&
  4.     Open ThisWorkbook.Path & "\数据.txt" For Input As #1
  5.     a = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
  6.     For i = 0 To UBound(a)
  7.         If InStr(a(i), "6201") Then
  8.             r = r + 1
  9.             ReDim Preserve Arr1(1 To r)
  10.             Arr1(r) = i
  11.         End If
  12.     Next
  13.     ReDim Brr(1 To UBound(a), 1 To 4)
  14.     For j = 1 To r
  15.         If j <> r Then
  16.             js = Arr1(j + 1) - 1
  17.         Else
  18.             js = UBound(a)
  19.         End If
  20.         ks = Arr1(j) + 1
  21.         For i = ks To js
  22.             ReDim b(1 To 4)
  23.             m = m + 1
  24.             For ii = 1 To Len(a(i)) Step 32
  25.                 b(Int(ii / 32) + 1) = Mid(a(i), ii, 32)
  26.             Next
  27.             For x = 1 To 4
  28.                 If b(x) <> "" Then
  29.                 Brr(m, x) = Split(Split(b(x), ".,")(1), ",")(0)
  30.                 End If
  31.             Next
  32.         Next
  33.         m = m + 1
  34.     Next
  35.     Close #1
  36.     Sheet1.Activate
  37.     Cells.Clear
  38.     [a1].Resize(UBound(Brr), 4) = Brr
  39. End Sub

复制代码

TA的精华主题

TA的得分主题

发表于 2011-7-15 14:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请见附件。

数据0715.rar

13.65 KB, 下载次数: 560

TA的精华主题

TA的得分主题

发表于 2011-7-15 17:55 | 显示全部楼层

版主 出手, 就知有没有. 学习了.

版主认真仔细,代码写得漂亮.学习了.
我理解错了.更正为版主的方式. 代码如下.

Sub Macro1()

Application.DisplayAlerts = False '关闭报警

Dim arr, string1 As String, i

Open "D:\Downdown\VB\网页帮助\数据\数据.txt" For Input As #1 '打开文本文件

string1 = StrConv(InputB(LOF(1), 1), vbUnicode)

arr = Split(string1, ".,")


For i = 0 To UBound(arr) - 1

Cells(i \ 4 + 1, i Mod 4 + 1).Value = Split(arr(i + 1), ",")(0)



Next

Close #1 '关闭文件

End Sub

数据2.rar

15.82 KB, 下载次数: 224

TA的精华主题

TA的得分主题

发表于 2013-1-9 21:52 | 显示全部楼层
麻烦版主,我现在有个文本文件,要求逐行读入,然后以列的方式写入EXCEL.文本内容以64行为一段写到EXCEL后为一行若干列,如何实现

文档.zip

831 Bytes, 下载次数: 32

TA的精华主题

TA的得分主题

发表于 2014-6-28 18:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
蓝桥玄霜 发表于 2011-7-15 14:14

文件内容读取.zip (124.81 KB, 下载次数: 89) 我想实现文件夹名读取和文件夹名目录下ini文件内容的读取、读取的内容输出到excel中的两列去、详见附件。

TA的精华主题

TA的得分主题

发表于 2014-6-29 09:21 | 显示全部楼层
附件中缺少包含ini文件的文件夹和ini文件。
建议搜索批量导入txt文件。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-18 10:55 , Processed in 0.051549 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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