|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Option Explicit
Sub test()
Dim i, filename(), brr, maxrow, arr, j, n
If Not getfilename(filename, ThisWorkbook.Path, ".txt") Then MsgBox "!": Exit Sub
ReDim brr(1 To 16 ^ 4, 1 To UBound(filename))
For i = 1 To UBound(filename)
Open filename(i) For Input As #1
arr = StrConv(InputB(LOF(1), 1), vbUnicode)
Close #1
arr = Replace(Replace(arr, "SH", "|s"), "SZ", "|z")
arr = Split(arr, "|"): n = n + 1
If maxrow < UBound(arr) Then maxrow = UBound(arr)
For j = 1 To UBound(arr)
brr(j, n) = Split(arr(j))(0)
brr(j, n) = IIf(Left(brr(j, n), 1) = "s", "SH", "SZ") & Right(brr(j, n), Len(brr(j, n)) - 1)
Next j, i
With [a2]
.Resize(maxrow + 1, n + 1).ClearContents
.Resize(maxrow, n) = brr
End With
End Sub
Function getfilename(filename, pth, mark) As Boolean
Dim f, n
If Right(pth, 1) <> "\" Then pth = pth & "\"
f = Dir(pth & "*.*")
Do While Len(f) > 0
If LCase(Right(f, Len(mark))) = LCase(mark) Then
n = n + 1: ReDim Preserve filename(1 To n)
filename(n) = pth & f
End If
f = Dir
Loop
If n > 0 Then getfilename = True
End Function |
|