FileSystemObject后期绑定报错:ActiveX组件无法创建对象
解决FileSystemObject后期绑定的"ActiveX component can't create object"错误
嘿,我帮你分析下这个报错的问题——这个提示通常是因为FileSystemObject对应的组件没注册成功,或是权限、系统与Office位数不匹配导致的,给你几个实用的解决办法:
重新注册Scripting组件
FileSystemObject属于scrrun.dll这个组件,有时候它的注册信息会莫名丢失。你可以这么操作:- 按下Win+R打开运行窗口,输入
cmd后右键选择「以管理员身份运行」命令提示符 - 根据你的Office位数输入对应命令:
- 如果你用的是32位Office(哪怕系统是64位):
regsvr32.exe C:\Windows\SysWOW64\scrrun.dll - 如果你用的是64位Office:
regsvr32.exe C:\Windows\System32\scrrun.dll
- 如果你用的是32位Office(哪怕系统是64位):
- 执行后会弹出注册成功的提示,再重新运行你的VBA代码试试。
- 按下Win+R打开运行窗口,输入
以管理员身份运行Excel
有时候普通用户权限不足以创建ActiveX对象,你可以右键点击Excel图标,选择「以管理员身份运行」,再打开工作簿执行代码。用VBA原生函数替代FileSystemObject
如果上面的方法都不管用,你可以完全绕开FileSystemObject,用VBA自带的Dir和MkDir函数实现文件夹判断与创建,代码改成这样:Katalog = ThisWorkbook.Path & "\Raporty" ' 判断文件夹是否存在(vbDirectory参数表示查找目录) If Dir(Katalog, vbDirectory) = "" Then MkDir Katalog End If这个方法不依赖ActiveX组件,兼容性更强。
内容的提问来源于stack exchange,提问作者Arkadiusz




