返回列表 上一主題 發帖

[發問] 如何移除陣列內重複的部分(STRING)

回復 9# 准提部林


    前輩好
請教前輩 附件範例要整理不重複品號,哪裡錯了?

不重複_20210915.zip (297.6 KB)

TOP

回復 11# n7822123

沒用過InStr操作

學習了 感謝大大分享
用功到世界末日那一天∼∼∼

TOP

回復 9# 准提部林

感謝准提部林版主熱心回覆

看了8樓M大解說

明瞭了 !

謝謝
用功到世界末日那一天∼∼∼

TOP

回復 8# ML089

感謝M大

你一用Key取代原有的E
再加上說明 一切就清楚了

理解如下:
作法其實是用字典的Key不會重複的特性
把陣列值加到字典Key值
最後再印出Key值就是不重複的結果了!
用功到世界末日那一天∼∼∼

TOP

本帖最後由 n7822123 於 2020-5-18 12:46 編輯

回復 10# 准提部林


哈哈,感謝準大糾正~~~ 是我欠考慮了

修正程式
  1. Sub test()
  2. Arr = Array("XX", "aa", "ab", "ab", "ab", "XX", "ab")
  3. T$ = ""
  4. For Each Item In Arr
  5.   If InStr(" " & T$ & " "," " &  Item & " ") = 0 Then T = Trim(T & " " & Item)
  6. Next
  7. Brr = Split(T, " ")
  8. End Sub
複製代碼
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 7# n7822123


If InStr(" " & T$ & " "," " & Item & " ") = 0 Then T = Trim(T & " " & Item)
用分隔符號將字串包覆再比對, 避免錯判,
例如:"AA", "AAA", "張三", "張三郎" 會有所混淆~~

TOP

本帖最後由 准提部林 於 2020-5-18 11:46 編輯

回復 6# li_hsien

D(Key) = Item
可將Key比喻為不同的人, 而每一個人背個包包, 這包包可裝任何東西(Item),
Key值是唯一的(每個人在世上都是唯一的), 而Item可賦于其相關聯的內容, 或為空(包包不裝東西),
因為目的只是要取得不重覆值(即Key值), 所以用空字符""為Item,
__亦即每一個人都揹個空包包, 認人不認包
D(Key)=""
D(Key)=1
D(Key)="A"
都可以得到相同效果, 1及A是隨意給的,但在這裡毫無意義~~


================================

TOP

回復 6# li_hsien

原先
For Each E In AR
    D(E) = ""
Next
AR = D.KEYS


改為,將 E 改為 Key,是否比較有感覺
For Each Key In AR
    D(Key) = ""
Next
AR = D.KEYS


因為字典陣列 D(Key)裡的Key不會有重複值,
當 Key 從 AR 陣列取出有重複值時,會以前一個相同Key值的 D(Key) 為位置。


D(Key) = "",後面賦值是甚麼不重要,因為後面用 D.KEYS 取出不重複值。


~ 個人解讀,供你參考 ~
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 1# PKKO

提供一個不使用字典物件的寫法

Arr 處理過後 得到一個 不重複的 Brr 陣列
  1. Sub test()
  2. Arr = Array("XX", "aa", "ab", "ab", "ab", "XX", "ab")
  3. T$ = ""
  4. For Each Item In Arr
  5.   If InStr(T$, Item) = 0 Then T = Trim(T & " " & Item)
  6. Next
  7. Brr = Split(T, " ")
  8. End Sub
複製代碼
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 2# GBKEE

2014年的文章到了2020還是非常實用

這方法幫我解決陣列移除重複的問題

對於字典的用法不是很清楚
一直不懂為什麼
  1. For Each E In AR
  2.     D(E) = ""
  3. Next
  4. AR = D.KEYS
複製代碼
可以達到移除重複的效果

我看了下方的回覆還是不清楚@@

再請版主指教

謝謝
用功到世界末日那一天∼∼∼

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題