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
不是一个文件夹,而是一个快捷方式。 改用LOCALAPPDATA
或APPDATA
:
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