我有一个平面文件,其布局不寻常,数据垂直堆叠。每个数据块都以相同的文字字符串开头,但前面的数据行在每个数组之间有所不同。目标是将结果展平为单个记录。我很失落如何实现这一目标。请帮忙。
我希望将每条记录分成自己的行的正则表达式是PL_ID%。我只是不太了解vba脚本来做到这一点。有人能指出我的方向吗?
答案 0 :(得分:0)
试试这个:
Sub flatToExcel()
Dim fileToOpen As String
Dim allData As String, parseData() As String
Dim currentRow As Integer
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> "" Then
Open fileToOpen For Binary As #1
allData = Space$(LOF(1))
Get #1, , allData
Close #1
End If
parseData() = Split(allData, vbCrLf)
currentRow = 0
For i = 0 To UBound(parseData(), 1) - LBound(parseData(), 1)
If Not parseData(i) Like "PL_ID*" Then
ThisWorkbook.Sheets(1).Cells(currentRow, Columns.Count).End(xlToLeft).Offset(0, 1).Value = parseData(i)
Else
currentRow = currentRow + 1
ThisWorkbook.Sheets(1).Cells(currentRow, 1).Value = parseData(i)
End If
Next i
End Sub