0

次のコードでエラーが発生しましたが、その理由がわかりません。

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDir = objFSO.GetFolder(strOrigDir)
Set colFiles = objDir.Files

For Each strFile in colFiles
Select Case Right(strFile,3)
    Case "rar"
        strTarFile = strFile
        intIsRar = 1
        Exit For
    Case "avi" or "mkv" or "mp4"
        strTarFile = strFile
        Exit For
    Case Else
        WScript.Quit
End Select
Next

メッセージを受信しType mismatch: '[string:"avi"]'ましたが、Select Case理由がわかりません。VarType を使用して strFile の値をチェックして、気が狂っていないことを確認し、文字列を比較すべきではないものと比較しようとしました (VarType は 8 を返します)。これが間違っている理由はありますか?

4

1 に答える 1

4

問題はSelect Caseステートメントの構文にあります。複数のケースが必要な場合は、カンマ区切りのリストを使用する必要があります。

Select Case Right(strFile,3)
    Case "rar"
        strTarFile = strFile
        intIsRar = 1
        Exit For
    Case "avi", "mkv", "mp4"
        strTarFile = strFile
        Exit For
    Case Else
        WScript.Quit
End Select

"avi" or "mkv" or "mp4"ブールステートメントとして評価しようとしているため、「型の不一致」が発生している可能性があります。

于 2013-06-15T05:13:04.640 に答える