如何用excel批量读取txt中固定行列的数据?
你好,大神!请问如何提取如下每个文件中的第6行,第10列的值(温度)到Excel某一单元格中,然后依次提取作为一列呢?扩充一点,要是想把第6行,第1列的值也做出同样的处理...
你好,大神!
请问如何提取如下每个文件中的第6行,第10列的值(温度)到Excel某一单元格中,然后依次提取作为一列呢?扩充一点,要是想把第6行,第1列的值也做出同样的处理作为时间的Excel一列,和第6行,第13列的值提取到另一列中作为相对湿度值(共3列),应该怎么加入代码呢?恳求大神赐教!!!感激。(Excel.xlsm自己建立在当前文件夹就可以了) 展开
请问如何提取如下每个文件中的第6行,第10列的值(温度)到Excel某一单元格中,然后依次提取作为一列呢?扩充一点,要是想把第6行,第1列的值也做出同样的处理作为时间的Excel一列,和第6行,第13列的值提取到另一列中作为相对湿度值(共3列),应该怎么加入代码呢?恳求大神赐教!!!感激。(Excel.xlsm自己建立在当前文件夹就可以了) 展开
展开全部
'将如下宏代码粘贴到excel的VBA编辑器中,按F5运行即可,注意修改你的文件所在的目录。
Sub ReadData()
Dim Path As String, MyValue As String, fn As Long
Path = "C:\tmp" '假定你的1dr文件处在C:\tmp 文件夹中,可以自行修改
fn = FreeFile
RowI = 1
fname = Dir(Path & "\*.1dr")
'如果是txt文件,则为 fname = Dir(Path & "\*.txt")
If fname <> "" Then
Do
Open Path & "\" & fname For Input As #fn
Row = 0
Do Until EOF(fn)
Line Input #fn, Data
Data = Trim(Data)
If Data <> "" Then Row = Row + 1
If Row = 6 Then Exit Do '这里6表示表示提取第几行的数据
Loop
Close #fn
If Data <> "" And Row = 6 Then
Data = Replace(Data, " ", vbTab)
Data = Replace(Data, vbTab & vbTab, vbTab)
Data = Split(Data, vbTab)
n = UBound(Data)
If n >= 10 And Trim(Data(9)) <> "" Then '提取第6行第10列数据填充到单元格的第1列中
On Error Resume Next
Cells(RowI, 1).Value = Data(9)
If Err.Number Then
Cells(RowI, 1) = Data(9)
End If
End If
If n >= 1 And Trim(Data(0)) <> "" Then '提取第6行第1列数据填充到单元格的第2列中
On Error Resume Next
Cells(RowI, 2).Value = Data(0)
If Err.Number Then
Cells(RowI, 2) = Data(0)
End If
End If
If n >= 13 And Trim(Data(12)) <> "" Then '提取第6行第13列数据填充到单元格的第3列中
On Error Resume Next
Cells(RowI, 3).Value = Data(12)
If Err.Number Then
Cells(RowI, 3) = Data(12)
End If
End If
End If
RowI = RowI + 1
fname = Dir()
Loop While fname <> ""
ActiveWorkbook.Save
End If
MsgBox "处理完毕!", vbInformation + vbOKOnly, "消息"
End Sub
追问
追答
for ii=0 to 10
Data = Replace(Data, " ", vbTab)
Data = Replace(Data, vbTab & vbTab, vbTab)
next
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询