You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

FileSystemObject后期绑定报错:ActiveX组件无法创建对象

解决FileSystemObject后期绑定的"ActiveX component can't create object"错误

嘿,我帮你分析下这个报错的问题——这个提示通常是因为FileSystemObject对应的组件没注册成功,或是权限、系统与Office位数不匹配导致的,给你几个实用的解决办法:

  • 重新注册Scripting组件
    FileSystemObject属于scrrun.dll这个组件,有时候它的注册信息会莫名丢失。你可以这么操作:

    1. 按下Win+R打开运行窗口,输入cmd后右键选择「以管理员身份运行」命令提示符
    2. 根据你的Office位数输入对应命令:
      • 如果你用的是32位Office(哪怕系统是64位)
        regsvr32.exe C:\Windows\SysWOW64\scrrun.dll
        
      • 如果你用的是64位Office
        regsvr32.exe C:\Windows\System32\scrrun.dll
        
    3. 执行后会弹出注册成功的提示,再重新运行你的VBA代码试试。
  • 以管理员身份运行Excel
    有时候普通用户权限不足以创建ActiveX对象,你可以右键点击Excel图标,选择「以管理员身份运行」,再打开工作簿执行代码。

  • 用VBA原生函数替代FileSystemObject
    如果上面的方法都不管用,你可以完全绕开FileSystemObject,用VBA自带的DirMkDir函数实现文件夹判断与创建,代码改成这样:

    Katalog = ThisWorkbook.Path & "\Raporty"
    ' 判断文件夹是否存在(vbDirectory参数表示查找目录)
    If Dir(Katalog, vbDirectory) = "" Then
        MkDir Katalog
    End If
    

    这个方法不依赖ActiveX组件,兼容性更强。

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

火山引擎 最新活动