VBA批量导入文本文件,如何转换二维数组?

导入多个带分隔符的得文本文件时生成数组后怎么对数组进行处理?求大神帮忙解决下!Sub 导入文本文件()Dim str, arr, brrWith Application.FileDialog(msoFileDialogFolderPicker)'取得用户选择的文件夹路径.AllowMultiSelect = FalseIf .Show Then p = .SelectedItems(1) Else Exit SubEnd WithIf Right(p, 1) <> "\" Then p = p & "\"f = Dir(p & "*.txt*") '开始遍历工作簿While f <> ""Filename = p & "\" & fOpen Filename For Input As #1str = StrConv(InputB(LOF(1), 1), vbUnicode)Close #1arr = Split(str, Chr(10))'只会生成一维数组,如何变成二维数组录入到单元格中Cells(Rows.Count, 1).End(3).Offset(1).Resize(UBound(arr)) = WorksheetFunction.Transpose(arr)f = DirWendEnd Sub

Sub 导入文本文件()
Dim str, arr, brr, crr, drr, i As Long
With Application.FileDialog(msoFileDialogFolderPicker) '取得用户选择的文件夹路径
.AllowMultiSelect = False
If .Show Then
p = .SelectedItems(1)
Else
Exit Sub
End If
End With
If Right(p, 1) <> "\" Then
p = p & "\"
f = Dir(p & "*.txt*") '开始遍历工作簿
While f <> ""
Filename = p & "\" & f
Open Filename For Input As #1
str = StrConv(InputB(LOF(1), 1), vbUnicode)
Close #1
arr = Split(str, Chr(10)) '只会生成一维数组,如何变成二维数组录入到单元格中
ReDim brr(UBound(arr))
For i = 0 To UBound(arr)
brr(i) = UBound(Split(arr(i), "|"))
Next i
n = Application.WorksheetFunction.Max(brr)
ReDim crr(UBound(arr), n)
For i = 0 To UBound(arr)
drr = Split(arr(i), "|")
For j = 0 To UBound(drr)
crr(i, j) = drr(j)
Next j
Next i
Cells(Rows.Count, 1).End(3).Offset(1).Resize(UBound(arr) + 1, n + 1) = crr
f = Dir
Wend
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-14
垂直方向叠加就好俩儿。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网