如何用excel批量读取txt中固定行列的数据

比如说我有24个txt。文件名为001到024,我想用excel批量读取这24个txt中的第三行第四列的数据,有什么办法吗。大侠帮忙,多谢了!... 比如说我有24个txt。文件名为001到024,我想用excel批量读取这24个txt中的第三行第四列的数据,有什么办法吗。大侠帮忙,多谢了! 展开
 我来答
mkw007
2012-10-24 · TA获得超过4267个赞
知道大有可为答主
回答量:6560
采纳率:55%
帮助的人:1621万
展开全部
'将如下宏代码粘贴到excel的VBA编辑器中,按F5运行即可,注意修改你的txt文件所在的目录。
Sub ReadTxt()
Dim Path As String, MyValue As String, fn As Long
Path = "C:\test" '假定你的24个txt文件处在C:\test 文件夹中,可以自行修改
fn = FreeFile
For i = 1 To 24
j = 0
Open "C:\test\" + Format(i, "000") + ".txt" For Input As fn
Do Until EOF(fn)
Line Input #fn, MyValue
j = j + 1
If j = 3 Then Exit Do
Loop
Close #fn
MyValue = Trim(MyValue)
If InStr(MyValue, ",") Then '假设各列的数据分隔符为中文逗号,如果是英文逗号,自行修改为InStr(MyValue, ",")
pos = inst(MyValue, ",")
If pos Then
pos = InStr(pos + 1, MyValue, ",")
If pos Then
pos = InStr(pos + 1, MyValue, ",")
If pos Then
MyValue = Mid(MyValue, pos + 1)
pos = InStr(MyValue, ",")
If pos Then MyValue = Left(MyValue, pos - 1)
End If
End If
End If
ElseIf InStr(MyValue, " ") Then '假设各列的数据分隔符为空格
Do
a = Len(MyValue)
MyValue = Replace(MyValue, " ", "")
Loop While a <> Len(MyValue)
pos = inst(MyValue, " ")
If pos Then
pos = InStr(pos + 1, MyValue, " ")
If pos Then
pos = InStr(pos + 1, MyValue, " ")
If pos Then
MyValue = Mid(MyValue, pos + 1)
pos = InStr(MyValue, " ")
If pos Then MyValue = Left(MyValue, pos - 1)
End If
End If
End If
ElseIf InStr(myvale, vbTab) Then '假设每一行的各列的分隔符为一个Tab制表符
Do
a = Len(MyValue)
MyValue = Replace(MyValue, vbTab + vbTab, vbTab)
Loop While a <> Len(MyValue)
pos = inst(MyValue, vbTab)
If pos Then
pos = InStr(pos + 1, MyValue, vbTab)
If pos Then
pos = InStr(pos + 1, MyValue, vbTab)
If pos Then
MyValue = Mid(MyValue, pos + 1)
pos = InStr(MyValue, vbTab)
If pos Then MyValue = Left(MyValue, pos - 1)
End If
End If
End If
End If
Cells(i, 1) = myvale '将提取的数据填充在第一列的各行中
Next
MsgBox "处理提取完毕!"
End Sub
蓝方格知识分享
2012-10-24 · TA获得超过255个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:213万
展开全部
直接读取时不可能的了,你可以先按顺序导入到一个表格中作为你批量读取的数据库,然后给每一个txt数据区域命名(其实就相当于做了一个二维数组),再用 offset() ,match(),index(). 按你的第三行第四列的坐标读出放到你想要放置的地方即可!你还可以动态的指定坐标的
函数举例:=offset(命名1,3,4,),就是取区域(命名1)中第三行第四列的数据。

说明白点就是一个数据的引用问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式