You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GetFolder方法未返回Folder对象,返回字符串引发类型不匹配错误

VBA FileSystemObject GetFolder 类型不匹配错误(错误代码13)

我正在编写需要GetFolder方法返回Folder对象的代码,已启用Microsoft Scripting Runtime,编写并调试了如下代码:

Sub test()

Dim fso As FileSystemObject, fld As folder, fl As file

Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder("D:\test\")

MsgBox VarType(fso)
MsgBox VarType(fso.GetFolder("D:\test\"))

End Sub

运行时触发错误代码13(类型不匹配),按照文档描述,GetFolder应该返回Folder对象并赋值给fld变量,但实际行为与文档不符。

为定位问题,我运行了如下排查代码:

Sub test()

Dim fso As FileSystemObject, fld As folder, fl As file

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox VarType(fso)
MsgBox VarType(fso.GetFolder("D:\test\"))

End Sub

第一个MsgBox输出9,表明fso是对象变量;第二个MsgBox输出8,表明GetFolder返回的是字符串变量。查阅官方文档及在线资料后,未发现其他用户遇到相同问题。

补充测试了以下代码:

Option Explicit
Sub test()

Dim fso As FileSystemObject, fld As folder, fl As file

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox TypeName(fso.GetFolder("D:\"))
MsgBox VarType(fso)
MsgBox VarType(fso.GetFolder("D:\"))
MsgBox fso.FolderExists("D:\")
Set fld = fso.GetFolder("D:\")

End Sub

MsgBox依次返回"Folder"、"9"、"8"、True,随后在Set fld = fso.GetFolder("D:\")处触发类型不匹配错误。

内容的提问来源于stack exchange,提问作者Alex Tee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:28:29