【问题标题】:How to copy different versions of the same folder in excel vba?如何在excel vba中复制同一文件夹的不同版本?
【发布时间】:2016-12-23 12:35:42
【问题描述】:

我想做的是在检查文件夹是否存在后使用 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

检查文件夹是否已经存在。

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:
    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 已被使用之前可用。

    【讨论】:

    • 这太棒了,而且效果很好!谢谢!!!我真的需要更多地练习循环:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多