返回列表 上一主題 發帖

兩組數值去除重複的資料後排序

本帖最後由 Andy2483 於 2023-3-20 12:04 編輯

[attach]35988[/attach]回復 1# henry860608


    謝謝前輩發表此主題與情境
後學練習陣列與字典的解決方案如下,請前輩參考

執行前:


執行結果:


Option Explicit
Sub TEST()
Dim Brr, Y, C%, R&
'↑宣告變數:(Brr,Y)是通用型變數,C是短整數,R是長整數
Set Y = CreateObject("Scripting.Dictionary")
'↑令Y這通用型變數是 字典
[C:C].ClearContents
'↑令C欄儲存格內容清除
Brr = Range([B1], Cells(Rows.Count, "A").End(3))
'↑令Brr這通用型變數是 二維陣列,
'以[B1]到A欄最後有內容儲存格值帶入

For C = 1 To 2
'↑設順迴圈!C從1到 2
   For R = 1 To UBound(Brr)
   '↑設順迴圈!R從1到 Brr陣列縱向最大索引列號
      Y(Brr(R, C)) = ""
      '↑令R迴圈列R迴圈欄Brr陣列值當key,item是空字元,納入Y字典裡
      '若key重複只留一筆

   Next
Next
With [C1].Resize(Y.Count, 1)
'↑以下是關於[C1]儲存格擴展向下(Y字典key數量)列的相關程序
   .Value = Application.Transpose(Y.Keys)
   '↑令儲存格值以 Y字典key轉置後值帶入
   .Sort KEY1:=.Item(1), Order1:=1, _
   Header:=0, Orientation:=1
   '↑令以[C1]作為排序基準做一層次無標題列的縱向順排序
End With
Erase Brr: Set Y = Nothing
'↑令釋放變數
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 6# quickfixer


    謝謝前輩
這方法沒有將值寫入儲存格就可排序,若用於自訂表單中清單明細的收集不重複後排序,好像很方便
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 9# quickfixer
回復 10# singo1232001


    謝謝論壇,謝謝前輩指導
待應用的機會使用,謝謝
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

本帖最後由 Andy2483 於 2023-3-23 15:24 編輯

回復 9# quickfixer
回復 13# henry860608

謝謝前輩
練習應用於以下論壇鏈結帖,請前輩指教
http://forum.twbts.com/redirect. ... o=lastpost#lastpost
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題