【发布时间】:2015-05-14 10:06:23
【问题描述】:
我找到了替换文件名中无效字符的函数。我想将它用于一个文件夹中的所有文件。
Function strLegalFileName(strFileNameIn As String) As String
Dim i As Integer
Const strIllegals = "\/|?*<>"":"
strLegalFileName = strFileNameIn
For i = 1 To Len(strIllegals)
strLegalFileName = Replace(strLegalFileName, Mid$(strIllegals, i, 1), "_")
Next i
End Function
我不知道如何遍历所有文件并在包含无效字符时替换字符。
调用函数是否正确?通过 Debug.print 命令 所有文件都有我的循环,但我不确定如何构建它:
Sub LoopThroughFiles()
Dim MyObj As Object, MySource As Object, FileName As Variant
FileName = Dir("C:\Users\Anna\Desktop\testNazwa\")
While (file <> "")
Debug.Print strLegalFileName(strFileNameIn)
file = Dir
Wend
End Sub
【问题讨论】:
-
上面只打印替换后的文件名,实际上并没有重命名文件;它是否正确?再想一想,您将无法创建此类文件;因为 Windows 不允许您创建名称无效的文件。你能解释一下吗?
标签: vba for-loop file-rename invalid-characters