標題:
[發問]
如何擷取出不重複名稱的陣列?
[打印本頁]
作者:
ui123
時間:
2014-4-11 23:56
標題:
如何擷取出不重複名稱的陣列?
今天有一個問題想請教各位大大,是這樣的:
我在D槽有一資料夾複製了名稱類似的excel,想取出不要包含最後 "-數字"的名稱有那些,放置在一個陣列中:
卡住點:
問題1.無法用 arr(i) = sDir 取出各個xlsx
問題2.接下來想用len在find"-",算出位置然後不知道該刪除重複???
javascript:;
不知道有沒有人可以教教我,十分謝謝!
目前:
Sub List()
Dim arr(1000)
sPath = "D:\New folder\"
sDir = Dir(sPath & "*.xlsx", vbNormal)
i = 0
Do Until LenB(sDir) = 0
arr(i) = sDir
i = i + 1
Loop
End Sub
作者:
GBKEE
時間:
2014-4-12 06:09
回復
1#
ui123
Option Explicit
Sub List()
Dim arr(), sPath As String, sDir As String, i As Integer
'arr() 動態陣列(不限制陣列的維數)
sPath = "D:\New folder\"
sDir = Dir(sPath & "*.xlsx", vbNormal)
i = 0
Do While sDir <> "" '傳回一個 String (字串)
ReDim Preserve arr(0 To i) 'ReDim 重置陣列維數, Preserve 保有原來陣列的內容
d(Split(sDir, "#")(0)) = ""
arr(i) = sDir
sDir = Dir '依上一次的Dir條件繼續 的Dir
i = i + 1
Loop
End Sub
複製代碼
問題2.接下來想用len在find"-",算出位置然後不知道該刪除重複???
20140401-01#35-1.xlsx
20140401-01#35-223.xlsx
請說明要刪除哪一個?
作者:
ui123
時間:
2014-4-12 09:34
親愛的版主,我想要顯示 arr(20140401-01#35,20140401-156#35) 就可以了,但是 arr(i) = sDir好像會列出所有的檔案名。
不勝感激.....
作者:
ui123
時間:
2014-4-12 09:37
回復
2#
GBKEE
抱歉~忘記按到回復 >""""<
親愛的版主,我想要顯示 arr(20140401-01#35,20140401-156#35) 就可以了,但是 arr(i) = sDir好像會列出所有的檔案名。
不勝感激.....
作者:
GBKEE
時間:
2014-4-12 11:49
回復
4#
ui123
Option Explicit
Sub List()
Dim sPath As String, sDir As String, i As Integer
Dim D As Object, S As Integer
Set D = CreateObject("SCRIPTING.DICTIONARY") '字典物件
sPath = "D:\New folder\"
sDir = Dir(sPath & "*.xlsx", vbNormal)
i = 0
Do While sDir <> "" '傳回一個 String (字串)
S = InStrRev(sDir, "-") - 1
If Not D.EXISTS(Mid(sDir, 1, S)) Then D(Mid(sDir, 1, S)) = ""
'D.EXISTS(key) 字典物件的key存在傳回 True 反之 傳回 False
sDir = Dir '依上一次的Dir條件繼續 的Dir
i = i + 1
Loop
MsgBox Join(D.keys, vbLf)
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)