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 に答える