我想将包含 comdlg32.ocx 组件的表单的 Excel 电子表格分发到网络共享。
Windows 7 用户可能不会安装或注册此组件。有没有办法自动检查然后可能在 Windows 7 中安装这个组件?
我曾经有一些代码做了一些类似的事情
on error goto errhandler
try to instantiate an object of type x
we're not in the error handler - the dll must have already been registered!
continue processing...
exit sub (or whatever)
errhandler:
shell "regsvr.exe /s " & path_to_dll
retry instantiation
显然,如果 regsvr 调用失败,您将希望避免陷入无限循环。另外,我不建议在网络共享上注册 dll;下次运行宏时它可能不可用。尝试先将其复制到本地驱动器。
还有一件事要考虑:您不应该真正复制单个系统 DLL,因为它们是成组发布的,这样做会导致版本控制问题。但有时,我也发现冒险继续前进更容易。