求助:VBA中FolderExists方法返回类型不匹配错误如何解决?
解决VBA FolderExists方法的类型不匹配错误
错误原因
FileSystemObject的FolderExists方法返回的是布尔值(True/False),仅用于判断指定路径的文件夹是否存在,并非对象类型,因此不能用Set关键字赋值——这就是触发类型不匹配错误的核心原因。
修正后的基础代码
去掉Set关键字,将返回值直接赋值给布尔类型变量即可:
Sub testdir2() Dim fs As Object Dim smth As Boolean Set fs = CreateObject("Scripting.FileSystemObject") smth = fs.FolderExists("c:\new\test") ' 可选:输出结果验证 MsgBox "文件夹是否存在:" & smth End Sub
进阶:判断后操作文件夹对象
如果需要对目标文件夹进行实际操作(如读取属性、修改内容等),可先通过FolderExists确认存在性,再用GetFolder方法获取文件夹对象:
Sub testdir2() Dim fs As Object Dim targetFolder As Object Dim folderPath As String folderPath = "c:\new\test" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(folderPath) Then Set targetFolder = fs.GetFolder(folderPath) ' 示例:获取文件夹名称 MsgBox "目标文件夹名称:" & targetFolder.Name Else MsgBox "指定路径的文件夹不存在" End If End Sub
内容的提问来源于stack exchange,提问作者V K
相关产品推荐
相关产品推荐

