我开发了以下代码来打开大量文本文件(在同一文件夹中)并将每个文件中的所有内容复制到excel中(每行文本文件一个单元格,每个文本文件一行)。
但是,我不需要文本文件中的所有数据,这会减慢进程。文本文件采用以下格式:
DATASET UNSTRUCTURED_GRID
POINTS 5 float
0.096853 0.000000 0.111997
0.096853 -0.003500 0.111997
0.096890 0.000000 0.084015
0.096853 -0.003500 0.111997
0.096890 -0.003500 0.084015
CELL_DATA 5
SCALARS pressure float 1
LOOKUP_TABLE default
-0.000000
-0.000000
-3.000000
-2.000000
-6.000000
我需要从此文件复制的数据是第二批数字(在“LOOKUP_TABLE默认值”下面)。此示例中的行数为5(如“CELL_DATA”行开头所述,但此数字可以在不同文件之间更改。
总而言之,我正在寻找我的代码,只将最后一批数字复制到excel而不是一切,但我对如何解决这个问题感到茫然。
非常感谢任何帮助或建议。
Sub ImportTextFile()
Dim RowNdx As Integer
Dim ColNdx As Integer
Dim TempVal As String
Dim WholeLine As String
Dim Pos As Integer
Dim NextPos As Long
Dim SaveColNdx As Integer
FName = "E:\zdump\"
MyFile = Dir(FName & "*.txt")
Sep = vbLf
SaveColNdx = ActiveCell.Column
RowNdx = ActiveCell.Row
Do While MyFile <> ""
Open (FName & MyFile) For Input As #1
While Not EOF(1)
Line Input #1, WholeLine
If Right(WholeLine, 1) <> Sep Then
WholeLine = WholeLine & Sep
End If
ColNdx = SaveColNdx
Pos = 1
NextPos = InStr(Pos, WholeLine, Sep)
While NextPos >= 1
TempVal = Mid(WholeLine, Pos, NextPos - Pos)
Cells(RowNdx, ColNdx).Value = TempVal
Pos = NextPos + 1
ColNdx = ColNdx + 1
NextPos = InStr(Pos, WholeLine, Sep)
Wend
RowNdx = RowNdx + 1
Wend
Close #1
MyFile = Dir()
Debug.Print text
Loop End Sub
答案 0 :(得分:0)
尝试一下:
399360