如何在excel vba中复制同一文件夹的不同版本?

时间:2016-08-17 01:10:00

标签: vba excel-vba excel

我想要做的是在检查文件夹之后使用Excel制作文件夹的副本(如果存在)。但如果它存在,而不是删除文件夹并创建一个新文件夹(我已经想出如何使用kill / Rmdir / Mkdir函数),我想创建一个使用相同文件夹名称的新文件夹,但是在文件夹名称的末尾加上(1),(2)之类的东西来区分它们。此外,我希望它是一个循环,以便在以前的版本已经存在的情况下获得更高版本。

实施例: 原始文件夹名称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

检查文件夹是否已存在。

有关如何进行循环检查以及创建具有增量版本名称的文件夹的任何帮助?提前谢谢!

1 个答案:

答案 0 :(得分: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),而不是{{ 1}} - 即在注意到abc(4)已被使用之前,它看到2可用。