返回列表 上一主題 發帖

[發問] 資料處理-找出唯一的資料

回復 2# Hsieh

Hsieh 大大~ 很感謝你的回覆~
這就是我想要了解及想要更深入學習來應用的語法~
可以猜得出整個撰寫的邏輯,但不清楚一些語法的使用方式~
請大大能解釋一下~ 幫小弟解惑一下
  1. Sub Ex()

  2. Set d = CreateObject("Scripting.Dictionary")
  3. '問題CreateObject:建立並傳回對於 ActiveX 物件的引用。
  4. '["Scripting.Dictionary"]<==這是什麼意思呢??
  5. '因為大大有些時候用的方式,按F1是查不到的

  6. ar = Range("A1").CurrentRegion.Value
  7. 'CurrentRegion:傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。
  8. '小弟猜ar是否為由A1開始到空白邊界的儲存格範圍

  9. For i = 1 To UBound(ar, 1)
  10. 'UBound:表示指定陣列某維最大可使用的陣列索引。
  11. '用UBound來抓取ar範圍一維的最大陣列索引。

  12.   If d(ar(i, 1)) = "" Then
  13. 'd 是第一句Set d = CreateObject("Scripting.Dictionary")中的d,但不了解怎麼解讀。
  14.      d(ar(i, 1)) = ar(i, 2)
  15.      ElseIf InStr(d(ar(i, 1)), ar(i, 2)) = 0 Then
  16. 'InStr是用來比對d(ar(i, 1)), ar(i, 2)是否有一樣的資料,若沒有一樣則show0,0=0就是表示ar(i, 2)是要新增的
  17.      d(ar(i, 1)) = d(ar(i, 1)) & "/" & ar(i, 2)
  18.   End If
  19. Next
  20. [J:K] = ""
  21. [J1].Resize(d.Count, 1) = Application.Transpose(d.keys)
  22. [K1].Resize(d.Count, 1) = Application.Transpose(d.items)
  23. 'Application.Transpose(d.keys)與Application.Transpose(d.items) 就一點頭緒也沒有,不知道怎麼使用??
  24. End Sub
複製代碼
學習才能提升自己

TOP

回復 1# hugh0620
  1. Sub Ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. ar = Range("A1").CurrentRegion.Value
  4. For i = 1 To UBound(ar, 1)
  5.   If d(ar(i, 1)) = "" Then
  6.      d(ar(i, 1)) = ar(i, 2)
  7.      ElseIf InStr(d(ar(i, 1)), ar(i, 2)) = 0 Then
  8.      d(ar(i, 1)) = d(ar(i, 1)) & "/" & ar(i, 2)
  9.   End If
  10. Next
  11. [J:K] = ""
  12. [J1].Resize(d.Count, 1) = Application.Transpose(d.keys)
  13. [K1].Resize(d.Count, 1) = Application.Transpose(d.items)
  14. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題