VBA 代码判断文件名是否合法

哪位朋友知道用VBA代码如何能实现判断文件名是否合法(不包括非法字符)?

您可以使用 VBA 的 InStr 函数来判断文件名是否包含不合法的字符。例如,假设您的文件名保存在一个变量 fileName 中,那么您可以使用下面的代码来判断文件名是否合法:

Dim invalidChars As String: invalidChars = "/\:*?""<>|"

Dim isValid As Boolean: isValid = True

For i = 1 To Len(invalidChars)
    If InStr(fileName, Mid(invalidChars, i, 1)) > 0 Then
        isValid = False
        Exit For
    End If
Next

If isValid Then
    ' 文件名合法
Else
    ' 文件名不合法
End If

在这段代码中,我们定义了一个变量 invalidChars,它包含所有不合法的文件名字符。然后我们遍历这些字符,并使用 InStr 函数来检查文件名中是否包含这些字符。如果检查发现文件名中有不合法字符,就将变量 isValid 设为 False,并退出循环。最后,我们判断 isValid 的值来决定文件名是否合法。

你这里非法字符的定义是啥?能存在在硬盘中的文件名已经是合法字符的。
win下不允许文件名中包含*、?、/、\、"、<、>、:、| 这些字符。
要检测可以用string的instr函数
s = "sdfgfdgsd/fg.txt"
i = InStr(s, "/")
结果i为10,如果找不到则i=0。
非法字符放到数组里,挨个查找,没有就是合法的。