我正在检查用户输入的两个不同目录,以确保它们不包含 Windows 不允许的文件夹名称的任何符号。这两个目录是名为outputFolder和dirName的字符串,禁止的字符存储在名为msWinFolderChars的数组中。我有一个 for 循环,每次检查每个字符的两个目录,并(理想情况下)警告用户并在找到子目录时杀死该子目录。但实际发生的情况是,如果我输入无效字符,程序将找不到它并一直运行,直到它实际打开该目录,此时它会崩溃,因为它找不到包含无效字符的文件夹。有人看出哪里出了问题吗?
For Each char In msWinFolderChars
If InStr(outputFolder, char) = Not 0 Then
MsgBox ("You have entered an invalid output folder name. Please try again without using " & char)
Exit Sub
ElseIf InStr(dirName, char) = Not 0 Then
MsgBox ("You have entered an invalid CSV directory. Please try again without using " & char)
Exit Sub
End If
Next
最佳答案
使用If InStr(outputFolder, char) <> 0 Then
相反
关于arrays - InStr 似乎在此验证子程序中不起作用。有谁知道为什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32356168/