VBA Access获取运行时错误'13';类型不匹配

时间:2013-08-21 21:11:15

标签: vba runtime runtime-error

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',类型不匹配可以有人帮助,所以我可以正确的方式这样做。感谢

2 个答案:

答案 0 :(得分:1)

CB的类型为String。所以当你做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接受通配符模式,因此我认为这完全符合您的要求。

答案 1 :(得分: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