2016-08-17 115 views
1

我想要做的是使用Excel來檢查文件夾的副本,如果它存在。但是,如果它存在,而不是刪除文件夾並創建一個新文件夾(我已經想出瞭如何使用kill/Rmdir/Mkdir函數執行此操作),我想使用相同的文件夾名稱創建一個新文件夾,但在文件夾名稱末尾加上(1),(2)之類的內容來區分它們。另外,我希望它是一個循環,以便在以前版本已經存在的情況下獲得更高版本。如何在excel vba中複製同一文件夾的不同版本?

實施例: 原始文件夾名ABC 第一個副本(在同一目錄中的ABC(1)) 第二副本(在同一目錄中的ABC(2)) =>我想要做一個循環來檢查每個版本,然後創建一個新文件夾(如果它尚不存在)。

On Error Resume Next 
    Kill strDir & "*.*" 
    RmDir strDir 
    On Error GoTo 0 
    If Dir(strDir, vbDirectory) = "" Then 
    strDir = Destination & "\" " 
    MkDir strDir 
    End If 

這是我現在擁有的,我使用

If Dir(strDir, vbDirectory) = "" Then 

檢查,如果該文件夾已經存在。

有關如何執行循環檢查並創建具有增量版本名稱的文件夾的任何幫助?提前致謝!

回答

0
Dim strDirVersion as Integer 
If Dir(strDir, vbDirectory) <> "" Then 
    strDirVersion = 1 
    Do While Dir(strDir & "(" & strDirVersion & ")", vbDirectory) <> "" 
     strDirVersion = strDirVersion + 1 
    Loop 
    strDir = strDir & "(" & strDirVersion & ")" 
End If 

這將使strDir與任一初始值,或與(n)後綴其中n是第一個整數(從1),可以發現針對其目錄不存在。

注意:如果strDir過的abc和目錄abcabc(1)abc(3)已經存在的值,這將返回abc(2),不abc(4) - 即它看到2可用它注意到3曾經使用過。

+0

這是驚人的,完美的作品!謝謝!!!我真的需要練習我的循環更多:) – ragehulk

相關問題