loops - Else If 是否为 FileExists()

标签 loops excel if-statement vba

我需要检查是否存在每天生成的文件,周末和公共(public)/银行假日除外。每天的文件名都基于日期,所以如果我要在星期天运行它,我需要宏来执行以下操作。

我需要它来检查文件是否存在(它不会在星期日),然后从文件名中的日期中减去 1 天,然后再次测试它是否存在并继续此循环,直到找到确实存在的文件。

到目前为止,我已经获得了大部分代码,只是在循环部分苦苦挣扎:

Dim i As Integer
Dim Yday As Date
Dim YdayYear As Integer
Dim YdayMonth As Integer
Dim YdayDay As Integer
Dim CopyPath As String
Dim PastePath As String

i = 1
Yday = DateAdd("d", -i, Date)
YdayYear = DatePart("yyyy", Yday)
YdayMonth = DatePart("m", Yday)
YdayDay = DatePart("d", Yday)
CopyPath = "ABC\" & YdayYear & YdayMonth & YdayDay & ".csv"
PastePath = "XYZ\" & YdayYear & YdayMonth & YdayDay & ".csv"

If FileExists(CopyPath) Then
FileCopy Source:=CopyPath, Destination:=PastePath
    Else: i = i + 1

这就是我卡住的地方。如何让它重新运行代码的 If FileExists(CopyPath) 部分?

最佳答案

也许是一个 do while 循环:

Do While Not FileExists(CopyPath)
    i = i +1
    Yday = DateAdd("d", -i, Date)
    YdayYear = DatePart("yyyy", Yday)
    YdayMonth = DatePart("m", Yday)
    YdayDay = DatePart("d", Yday)
    CopyPath = "ABC\" & YdayYear & YdayMonth & YdayDay & ".csv"
    PastePath = "XYZ\" & YdayYear & YdayMonth & YdayDay & ".csv"
Loop

FileCopy Source:=CopyPath, Destination:=PastePath

关于loops - Else If 是否为 FileExists(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26862892/

相关文章:

excel - 如何创建具有最低 80% 源数据值的数据透视表?

excel - 为什么在 Excel/VBA 错误处理中 Err.Description 保持为空?

C简写代码方式

java - 无法使用相同的按键来连接/断开两个方 block

javascript,遍历多数组以列出数组的第一个元素

vba - 从过滤范围中获取最后一行

c - 在 C 中使用数组(输出错误)

Java:实现可比较但条件 if 太多。我怎样才能避免它们?

python - 加速 Python While 循环

javascript - 使用 Int 索引迭代对象 javascript