請教Excel函數設定(vlook、if)的問題,並且將檔案變更為指定格式
- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
由於資料量很大,需要設定函數讓電腦自己去處理,且無法設巨集(資料量大,跑太慢)
大量資料,用vba是最好方法,不過無法隨時更新,而用按鈕處理,但不理解為何〔無法設巨集〕?
若用公式,除了用〔輔助欄〕可以稍微優化速度,直接陣列公式會卡是無法避免的! |
|
|
|
|
|
|
|
- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
Sub TEST()
Dim Arr, Brr, T$, N&, xD, Dr, X%, i&
Arr = Range([A1], Cells(Rows.Count, 2).End(xlUp))
ReDim Brr(1 To UBound(Arr), 1 To 200)
Set xD = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Arr)
If Arr(i, 1) = "" Or Arr(i, 2) = "" Then GoTo 101
T = Arr(i, 1): Dr = xD(T)
If Not IsArray(Dr) Then N = N + 1: Dr = Array(N, 0): Brr(N, 1) = T
Dr(1) = Dr(1) + 1: If Dr(1) > X Then X = Dr(1)
Brr(Dr(0), Dr(1) + 1) = Arr(i, 2): xD(T) = Dr
101: Next i
With [工作表1!A1].Resize(N + 1, X + 1)
.Parent.UsedRange.Clear
.Cells(2, 1).Resize(N, X + 1) = Brr
.Item(1) = Arr(1, 1)
.Item(2).Resize(1, X) = "=""" & Arr(1, 2) & "-""&COLUMN(a1)"
.Borders.LineStyle = 1
Application.Goto .Item(1)
End With
End Sub
寫得囉嗦些,用看看:
Xl0000127.rar (19.48 KB)
|
|
|
|
|
|
|
|