- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# cslinmiso
使用Dictionary物件- Option Explicit
- Sub Ex()
- Dim d As Object, Rng As Range
- Set d = CreateObject("SCRIPTING.DICTIONARY") '設立 Dictionary物件
- Set Rng = Sheets("sheet1").[a2]
- Do
- d(Format(Rng, "yyyy/m/d") & Format(Rng.Offset(, 1), "hh:mm") & Rng.Offset(, 2)) = Rng.Offset(, 3).Resize(, 3)
- '2012/9/2200:30Aaron -> Dictionary物件的 key: Format(Rng, "yyyy/m/d") & Format(Rng.Offset(, 1), "hh:mm") & Rng.Offset(, 2)
- 'Rng.Offset(, 3).Resize(, 3)-> Dictionary物件的 item (D:E:F欄)
- Set Rng = Rng.Offset(1) '變數物件 下移一列
- Loop Until Rng.Value = "" '變數物件內容=空白字串離開迴圈
- Set Rng = Sheets("sheet2").[a2]
- Do
- If d.Exists(Rng.Text & Rng.Offset(, 1).Text & Rng.Offset(, 2)) Then
- 'Exists 方法 如果在 Dictionary 物件中指定的關鍵字存在,傳回 True,若不存在,傳回 False。
- Rng.Offset(, 3).Resize(, 3).Value = d(Rng & Rng.Offset(, 1).Text & Rng.Offset(, 2))
- 'D:F欄.Value=Dictionary物件的item
- End If
- Set Rng = Rng.Offset(1)
- Loop Until Rng = ""
- End Sub
複製代碼 |
|