返回列表 上一主題 發帖

跨欄對比

本帖最後由 Andy2483 於 2024-3-4 19:12 編輯

回復 8# 198188


    謝謝 前輩指導
原範例KP是IJK欄,請前輩試了解試改看看
Range([KP!K1], [KP!I65536].End(3))
改為
Range([KP!J1], [KP!H65536].End(3))
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

本帖最後由 198188 於 2024-3-4 18:20 編輯

回復 7# Andy2483



規則是一樣的,不過第一範例可能看到效果沒有那麽清楚,所以上載第二範例,請以這個回復的圖片爲例

TOP

回復 6# 198188


    前輩自己測試的範例與1#的範例不同,後學猜錯需求,請上傳真正的需求範例
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 5# Andy2483



    運行VBA后,KP内是 H- J 欄沒有讀取出來,以至黃色部分不正確。
KP & KH 兩個表格�堙A都有分別有兩份資料,欄 A - C   & 欄 H - J

TOP

本帖最後由 Andy2483 於 2024-3-4 16:03 編輯

回復 1# 198188


Option Explicit
Sub TEST()
Dim Arr, Brr, Crr, V$, Z, i&, T$, TT$, A, xA As Range, N%
Set Z = CreateObject("Scripting.Dictionary")
Set xA = Range([1!G1], [1!A65536].End(3))
xA.Offset(1, 12).ClearContents:  Brr = xA
For i = 2 To UBound(Brr)
   T = Format(Trim(Brr(i, 2)), "0000000"): V = Format(Val(Brr(i, 7)), "0000000"): TT = T & "/" & V
   Z(TT) = i
Next
Arr = [1!M1].Resize(UBound(Brr), 3)
A = Array(Range([KH!C1], [KH!A65536].End(3)), Range([KH!J1], [KH!H65536].End(3)), Range([KP!C1], [KP!A65536].End(3)), Range([KP!K1], [KP!I65536].End(3)))
For Each Crr In A
   Crr = Crr: N = N + 1
   For i = 3 To UBound(Crr)
      T = Format(Trim(Crr(i, 1)), "0000000"): V = Format(Val(Crr(i, 2)), "0000000"): TT = T & "/" & V
      If Z.Exists(TT) Then
         If Arr(Z(TT), 1) = "" Then
            Arr(Z(TT), 1) = Crr(1, 1)
            ElseIf InStr("/" & Arr(Z(TT), 1) & "/", "/" & Crr(1, 1) & "/") = 0 Then
            Arr(Z(TT), 1) = Arr(Z(TT), 1) & "/" & Crr(1, 1)
         End If
         Arr(Z(TT), N \ 3 + 2) = Crr(1, 3)
      End If
   Next
Next
[1!M1].Resize(UBound(Brr), 3) = Arr
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 3# Andy2483


    KH 資料表的 H1 儲存格

TOP

回復 2# 198188


    謝謝前輩發表此主題與範例
請問[M5]裡的 BF/BH/BJ  ,這 BJ從何來?
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 1# 198188


    圖片是執行前及執行后效果,以及兩個資料庫 KP & KH。

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題