- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
3#
發表於 2020-4-26 17:18
| 只看該作者
回復 2# wufonna
'**Dir 會傳回第一個與_路徑名稱_相符的檔案名稱。 若要取得任何與_路徑名稱_相符的其他檔案名稱,請再次呼叫不含引數的 Dir
你附檔的程式碼有盲點 If Dir(strPath, vbDirectory) = "" Then MkDir strPath
'**上式程式碼再次使用 Dir(strPath, vbDirectory) 導致 myname = Dir 傳回空自字串
你這程式碼可以的
也可用FileSystemObject 物件 試試- Option Explicit
- Sub Ex()
- Dim myPath As String, myFile As String, myname As String, n As Variant, strPath As String
- Dim AR(), Folder As String
- myPath = ThisWorkbook.Path & "\" 'myPath = ThisWorkbook.Path 檔案路徑
- myFile = "*.JPG"
- myname = Dir(myPath & myFile, vbDirectory) ' 'Dir 尋找檔案路徑\ *.JPG"的檔案
- Do While myname <> ""
- strPath = myPath & Replace(myname, ".jpg", "")
- With New FileSystemObject '引用項目 Microsoft Scripting Runtime
- On Error Resume Next '表示當一個執行階段錯誤產生時,程式控制立刻到發生錯誤陳述式接下去的陳述式,而繼續執行下去
- If .GetFolder(strPath) Is Nothing Then MkDir strPath '**加入圖片名稱的資料夾
- On Error GoTo 0 '停止現在程序裏任何已啟動的錯誤處理程式
- End With
- myname = Dir
- Loop
- End Sub
複製代碼 |
|