EXCEL VBA 怎样读取文本文件中某一位置的数?

yangmijun 2006-12-16 11:45:23
有一些程序自动生成的txt文件,我想用VBA将某一行中的数读到EXCEL中的一个格中。数据有两种情况:

1.数据所在行数固定,假如在第50行中固定会有“DATA 003 = 120.56”的字样,我就想把这个120.56读到EXCEL中,并将其格式改为数值,但要保证读取正确,就是说必须读“DATA 003”的数据,同一行中还有其他数据。

2.数据是用循环语句输出的
形如:
MDATA
NUM 1 = 105 SIZE 1 = 123
NUM 2 = 106 SIZE 2 = 456
NUM 3 = 107 SIZE 3 = 789
首先,数据的起始行数不确定,就是说不能肯定“NUM 1 = 105 SIZE 1 = 123
” 在文本的第几行,但前一行一定会有“MDATA”字样。然后数据组数不确定,不一定只有3组,后面可能会排到 “NUM 200 SIZE 200”,最后,同一行中数据不止一列,我如果只想读“NUM”列应该怎么办?
或者,我只想读“SIZE”列该怎么办?
...全文
1311 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaOBS 2006-12-18
  • 打赏
  • 举报
回复
右一个不结帖的... ...
.Net学习 2006-12-18
  • 打赏
  • 举报
回复
思路:
循环读文件,直到第50行。
判断DATA 003的位置,在位置之后判断=号位置。
由于数据后可能跟着别的数据,判断读入的是否是数字或者“.”来获得数据。

循环读取每一行,
判断是否有:"MDATA"
如果有,那么下一行开始
如果有NUM 那么读取该行第xxx个字符开始的3个字
如果没有NUM,又开始判断是否有 “MDATA”

ChinaOBS 2006-12-17
  • 打赏
  • 举报
回复
很简单,将文本文件的内容读到一个数组中,然后根据已知的条件判断并取出需要的数据。
如:

dim w1 as string,fPath as string,ww
w1=ReadTxtFile(fpath)'读取文本文件的函数
ww=split(w1,vbcrlf)'分解成数组
dim i as long
for i=0 to ubound(ww)
'在循环体内寻找特征行,如果行数固定,直接提取即可
next

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧