Board logo

標題: [發問] 字典不重覆請益? [打印本頁]

作者: joey0415    時間: 2014-9-19 13:24     標題: 字典不重覆請益?

本帖最後由 joey0415 於 2014-9-19 13:25 編輯

圖上兩種寫法都可以不重覆
這一段看得懂

       If Not d.Exists(Cells(i, 1).Value) Then
        d.Add Cells(i, 1).Value, Range(Cells(i, 1), Cells(i, 4))
        End If

而這一段為什麼也可以呢?知道的請幫忙解釋一下!謝謝
Set d(Cells(i, 1).Value) = Range(Cells(i, 1), Cells(i, 4))




[attach]19184[/attach]

[attach]19185[/attach]
作者: Hsieh    時間: 2014-9-19 16:01

回復 1# joey0415

DICTIONARY物件的ADD方法,若出現關鍵字重複時,則會發生add方法錯誤,所以必須使用Exists方法先測試關鍵字是否已經存在
以你的語法是要做A欄的不重覆來抓取內容
兩段方法皆可做到,但是結果卻不一樣
使用Exists方法,則該關鍵字第一次出現位置就被存入該關鍵字內容
而第二種方式用關鍵字對應寫入內容
則最後結果,會以關鍵字最後出現位置為對應內容
[attach]19186[/attach]
以上圖為例第一種使用Exists方法的語法
A欄不重複有2、3、4、5
分別對應2→A、3→E、4→B、5→F
用第二種直接給值的方式對應結果為
2→J、3→E、4→I、5→G
作者: joey0415    時間: 2014-9-19 20:28

回復 2# Hsieh

感謝版主,會再研究,如果不懂再請教版主

感謝回答




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)