返回列表 上一主題 發帖

[發問] 如何擷取出不重複名稱的陣列?

回復 1# ui123
  1. Option Explicit
  2. Sub List()
  3.     Dim arr(), sPath As String, sDir As String, i As Integer
  4.     'arr() 動態陣列(不限制陣列的維數)
  5.     sPath = "D:\New folder\"
  6.     sDir = Dir(sPath & "*.xlsx", vbNormal)
  7.     i = 0
  8.     Do While sDir <> ""   '傳回一個 String (字串)
  9.         ReDim Preserve arr(0 To i)  'ReDim  重置陣列維數, Preserve 保有原來陣列的內容
  10.         d(Split(sDir, "#")(0)) = ""
  11.         arr(i) = sDir
  12.         sDir = Dir            '依上一次的Dir條件繼續 的Dir
  13.         i = i + 1
  14.     Loop
  15. End Sub
複製代碼
問題2.接下來想用len在find"-",算出位置然後不知道該刪除重複???
20140401-01#35-1.xlsx
20140401-01#35-223.xlsx  
請說明要刪除哪一個?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# ui123
  1. Option Explicit
  2. Sub List()
  3.     Dim sPath As String, sDir As String, i As Integer
  4.     Dim D As Object, S As Integer
  5.     Set D = CreateObject("SCRIPTING.DICTIONARY") '字典物件
  6.     sPath = "D:\New folder\"
  7.     sDir = Dir(sPath & "*.xlsx", vbNormal)
  8.     i = 0
  9.     Do While sDir <> ""   '傳回一個 String (字串)
  10.         S = InStrRev(sDir, "-") - 1
  11.         If Not D.EXISTS(Mid(sDir, 1, S)) Then D(Mid(sDir, 1, S)) = ""
  12.         'D.EXISTS(key) 字典物件的key存在傳回 True 反之 傳回 False
  13.         sDir = Dir            '依上一次的Dir條件繼續 的Dir
  14.         i = i + 1
  15.     Loop
  16.     MsgBox Join(D.keys, vbLf)
  17. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題