- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
7#
發表於 2022-7-4 21:09
| 只看該作者
回復 6# oak0723-1
請測試看看,謝謝
Sub test()
Dim Arr, Crr, T, Brr(1 To 10000, 1 To 200), ph$, fn$, n&, C%, x%, j%
Application.ScreenUpdating = False
ph = ThisWorkbook.Path & "\"
With Sheets(1)
T = .[b2]
Arr = .Range(.[b4], .[b65536].End(3))
For x = 1 To UBound(Arr)
fn = Format(Arr(x, 1), "00"): Arr(x, 1) = fn
With Workbooks.Open(ph & fn & ".csv")
Crr = Range("A1").CurrentRegion
.Close
End With
For i = 1 To UBound(Crr)
If Crr(i, 1) = T Then
n = n + 1: Brr(n, 1) = fn
For j = 1 To UBound(Crr, 2): Brr(n, j + 1) = Crr(i, j): Next
If UBound(Crr, 2) + 1 > C Then C = UBound(Crr, 2) + 1
End If
Next
Next
.Range("c4:c" & UBound(Arr)).NumberFormatLocal = "@"
.[c4].Resize(UBound(Arr), 1) = Arr
End With
With Sheets(2)
.Range("a2").CurrentRegion.Offset(1) = ""
.Range("a3:a" & n).NumberFormatLocal = "@"
.[a3].Resize(n, C) = Brr
End With
Application.ScreenUpdating = True
End Sub |
|