arrays - InStr 似乎在此验证子程序中不起作用。有谁知道为什么吗?

标签 arrays string vba excel comparison

我正在检查用户输入的两个不同目录,以确保它们不包含 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/

相关文章:

c++ - 使用 BubbleSort 对数组进行排序

java - 在字符串中按字母顺序对字符进行排序

c - 在 C 中启动嵌套 for 循环以迭代参数的问题

python - 将两个 .join 方法合二为一

excel - 对象 'Range' 的方法 '_Worksheet' 使用范围 ("Reference!D3"失败)

vba - MS Excel VBA - 在类内设置 ADODB.Connection 的问题

vba - 如何在 Outlook 中添加默认签名

c++ - 为什么这个程序会创建这样的输出?

javascript - Internet Explorer 11 上的数组过滤

java - 如何正确重新排列 arraylist 以便能够从中提取