|
本帖最后由 oubaiyas122 于 2014-9-30 16:55 编辑
老师好:
需求如下,谢谢!
1、让第4行代码,变成以文件框的方式显示,并选择“附件.txt”,然后接着执行后面的代码读取txt的内容。
2、当文件框打开时,如要选择多个txt的文件。并在excel的不同sheet显示读取文本文件的内容。
- Sub Macro1()
- On Error Resume Next
- Dim arr(), i&, zf$
- Open ThisWorkbook.Path & "\附件.txt" For Input As #1
- w = Split(StrConv(InputB(LOF(1), #1), vbUnicode), "--- END")
- Close #1
- ReDim arr(1 To UBound(w), 1 To 2)
- For i = 0 To UBound(w) - 1
- zf = Split(Split(w(i), "IY=")(1), ",")(0)
- arr(i + 1, 1) = Mid(zf, 2, Len(zf) - 2)
- arr(i + 1, 2) = Split(Split(w(i), " 产品类型 = ")(1), vbCrLf)(0)
- Next
- Range("a2").Resize(UBound(arr), 2) = arr
- End Sub
|
- Sub Macro2() '一次性选取多个文本文件
- On Error Resume Next
- Dim arr(), i&, zf$
- With Application.FileDialog(msoFileDialogOpen)
- .AllowMultiSelect = True
- .Show
- For j = 1 To .SelectedItems.Count
- If Sheets.Count < j Then Sheets.Add after:=Sheets(Sheets.Count)
- Open .SelectedItems(j) For Input As #1
- w = Split(StrConv(InputB(LOF(1), #1), vbUnicode), "--- END")
- Close #1
- ReDim arr(1 To UBound(w), 1 To 2)
- For i = 0 To UBound(w) - 1
- zf = Split(Split(w(i), "IY=")(1), ",")(0)
- arr(i + 1, 1) = Mid(zf, 2, Len(zf) - 2)
- arr(i + 1, 2) = Split(Split(w(i), " 产品类型 = ")(1), vbCrLf)(0)
- Next
- Sheets(j).[a1:b1] = Array("IY", "产品类型")
- Sheets(j).Range("a2").Resize(UBound(arr), 2) = arr
- Sheets(j).Columns.AutoFit
- Next
- End With
- End Sub
复制代码
|
|