自定义文件导入excel

时间:2018-04-05 20:07:23

标签: excel excel-vba vba

我有一个平面文件,其布局不寻常,数据垂直堆叠。每个数据块都以相同的文字字符串开头,但前面的数据行在每个数组之间有所不同。目标是将结果展平为单个记录。我很失落如何实现这一目标。请帮忙。

来自档案的示例数据: enter image description here

excel中所需的最终布局: enter image description here

我希望将每条记录分成自己的行的正则表达式是PL_ID%。我只是不太了解vba脚本来做到这一点。有人能指出我的方向吗?

1 个答案:

答案 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