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
相关产品推荐
相关产品推荐

