Dir()如何在VBA中工作

在我当前的VBA代码中,我生成一个名为myFileName的variables,并希望在检查文件是否存在时将其用作参数,但在我使用的行中出现“Runtime error 52,bad file name or number”错误消息Dir命令。

有趣的是,如果我手动键入文件path到Dir命令而不是使用myFileNamevariables,那么它没有问题。 (没有错字,我可以在读取或写入文件时使用myFileName,它只会为Dir命令删除一个错误)

任何想法如何使Dir(myFileName)工作?

Set fs = CreateObject("Scripting.FileSystemObject") myFileName = Environ("USERPROFILE") & "\Application Data\myFile.txt" If Dir(myFileName) = "" Then Set a = fs.CreateTextFile(myFileName, True) a.Write ("0") a.Close End If 

\Application Data不是一个文件夹,而是一个快捷方式。 改用LOCALAPPDATAAPPDATA

 myFileName = Environ("LOCALAPPDATA") & "\myFile.txt" myFileName = Environ("APPDATA") & "\myFile.txt" 

你的问题是:

 myFileName = Environ("USERPROFILE") & "\Application Data\myFile.txt" 

它应该是

 myFileName = Environ("USERPROFILE") & "\Application Data" & "\" & "myFile" & ".txt" 

这是一个常见的问题,值得肯定的是你必须插入最后一个正斜杠。 IDK为什么要这样读vba,但这是周围的工作

我只是跑这个没有问题,并创build文件。

 Private Sub createafile() Set fs = CreateObject("Scripting.FileSystemObject") myFileName = Environ("USERPROFILE") & "\Desktop" & "\" & Format(Date, "ddmmyyyy") & ".xlsm" If Dir(myFileName) = "" Then Set a = fs.CreateTextFile(myFileName, True) a.Write ("0") a.Close End If End Sub