0
Public Function modCreditmove()
Dim fso, CB As String
Set fso = CreateObject("Scripting.FileSystemObject")
CB = ("H:\Credit*.xls")
If CB > 0 Then
fso.MoveFile ("H:\Credit*.xls"), "H:\Credit_Archive\"
End If

End Function

这是我用来移动文件以进行存档的代码,当有文件要移动时我让代码工作,然后当没有任何文件要移动时它抛出错误代码所以我尝试添加一个 if 语句没有弹出任何错误消息,我得到了运行时错误'13',类型不匹配可以有人帮助帮助,所以我可以以正确的方式做到这一点。谢谢

4

2 回答 2

1

CB 是字符串类型。因此,当您执行 CB > 0 时,它会尝试将其用作整数。

如果要检查模式中是否有任何文件,可以使用 Dir。如果结果是一个空字符串,那么什么都没有找到,所以你想在 dir 返回非空的东西时移动文件。

Dim fso
Dim filePattern As String

filePattern = "H:\Credit*.xls"
If Dir(filePattern) <> "" Then
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.MoveFile filePattern, "H:\Credit_Archive\"
End If

Dir 接受通配符模式,所以我认为这完全符合您的要求。

于 2013-08-21T21:22:00.407 回答
0

试试这个:

If (fso.FileExists("H:\Credit*.xls"))
    fso.MoveFile ("H:\Credit*.xls"), "H:\Credit_Archive\"
End If

http://msdn.microsoft.com/en-us/library/x23stk5t(v=vs.84).aspx

于 2013-08-21T21:36:45.500 回答