FSO script调用automation报错解决办法 及 导入excel

本文介绍了遇到“automation服务器不能创建对象”错误时的解决方法,包括开启FSO功能、调整IE安全设置、注册相关dll文件等内容。适用于因权限设置不当导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来程序运行的挺好的,过了几天出现了“automation服务器不能创建对象”这个问题,在网上找了一下,找到两个解决方法:
一:主要是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll

二:如果javascript脚本中报这个错误是因为IE的安全设置不允许运行未标记为安全的activeX控件 更改IE的安全设置,把相应的选项打开即可。
  有时用上面“解决”中所提的方法不是100%成功的,因为毕竟导致同样现象的原因并不是只会有一个,这个亦是一个思路。如果是在安装某个软件后出现这种问题,可卸载该软件或重装一下!
这个根据具体情况不同而解决方式不同,自己可以按以上两个方式解决一下。如果有别的原因和解决方法可以跟贴告诉我!

--------------------------------------------------------------------------------------------------------------------------------

今天又自己看了一下,最后发现只要修改"本地Intranet"内“对没有标记为安全的ActiveX控件进行初始化和脚本运行”这一项设置为“启用”就可以了,其他的ActiveX设置基本不起作用。

1.automation服务器不能创建对象
只需要运行:regsvr32 scrrun.dll 就可以了
2.未将对象引用设置到对象的实例。
1.ViewState 对象为Unll。
2.DateSet 空。
3.sql语句或Datebase的原因导致DataReader空。
4.声明字符串变量时未赋空值就应用变量。
5.未用new初始化对象。
6.Session对象为空。
7.对控件赋文本值时,值不存在
8.使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值
9.使用FindControl时,控件不存在却没有做预处理
一般在C#中造成“未将对象引用设置到对象的实例”错误都是控件名称与codebehind里面的没有对应,对于初学编程的人,而在编码中重复定义也会造成这种问题的产生。

1、如果是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll即可
2、安全模式设置成“中”,如果javascript脚本中报这个错误,还应将IE的安全设置“不允许运行未标记为安全的activeX控件”启用即可。
注意如果您将相应的网站设成“受信任的站点”,必须对“受信任的站点”进行相应的IE安全设置,此时如果对“Internet”IE设置将是徒劳的。
3、有些脚本需要微软的 MSXML 控件才能进入。当使用 IE 5 以上版本的缺省安全模式时,会提示是否接受 MSXML 控件,如果接受,MSXML 将自动安装到您的机器上(得等上几分钟)。如果自动安装不成功,可以自行下载和安装 MSXML 3.0 SP7。有时是由于msxml 3服务被关掉了,使用regsvr32 msxml3.dll即可
4、用上面方法基本上能决问题。如果是在安装某个软件后出现这种问题,可尝度卸载该软件或重装一下!
如果还是不行,试试以下方法:
5、请将以下语句复制到记事本中,另存为后缀为.cmd的文件,并运行。当然在命令行下一句句运行也没问题。
[复制此代码]CODE:
echo 正在修复,这个过程可能需要几分钟,请稍候……
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/System32/dacui.dll
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/Catroot/icatalog.mdb
regsvr32 /s comcat.dll
regsvr32 /s asctrls.ocx
regsvr32 /s oleaut32.dll
regsvr32 /s shdocvw.dll /I
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s browseui.dll /I
regsvr32 /s msrating.dll
regsvr32 /s mlang.dll
regsvr32 /s hlink.dll
regsvr32 /s mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s urlmon.dll
regsvr32 /s plugin.ocx
regsvr32 /s sendmail.dll
regsvr32 /s mshtml.dll /i
regsvr32 /s scrobj.dll
regsvr32 /s corpol.dll
regsvr32 /s jscript.dll
regsvr32 /s msxml.dll
regsvr32 /s imgutil.dll
regsvr32 /s cryptext.dll
regsvr32 /s inseng.dll
regsvr32 /s iesetup.dll /i
regsvr32 /s cryptdlg.dll
regsvr32 /s actxprxy.dll
regsvr32 /s dispex.dll
regsvr32 /s occache.dll
regsvr32 /s iepeers.dll
regsvr32 /s urlmon.dll /i
regsvr32 /s cdfview.dll
regsvr32 /s webcheck.dll
regsvr32 /s mobsync.dll
regsvr32 /s pngfilt.dll
regsvr32 /s licmgr10.dll
regsvr32 /s hhctrl.ocx
regsvr32 /s inetcfg.dll
regsvr32 /s trialoc.dll
regsvr32 /s tdc.ocx
regsvr32 /s MSR2C.DLL
regsvr32 /s msident.dll
regsvr32 /s msieftp.dll
regsvr32 /s xmsconf.ocx
regsvr32 /s ils.dll
regsvr32 /s msoeacct.dll
regsvr32 /s wab32.dll
regsvr32 /s wabimp.dll
regsvr32 /s wabfind.dll
regsvr32 /s oemiglib.dll
regsvr32 /s directdb.dll
regsvr32 /s inetcomm.dll
regsvr32 /s msoe.dll
regsvr32 /s oeimport.dll
regsvr32 /s msdxm.ocx
regsvr32 /s dxmasf.dll
regsvr32 /s laprxy.dll
regsvr32 /s l3codecx.ax
regsvr32 /s acelpdec.ax
regsvr32 /s mpg4ds32.ax
regsvr32 /s danim.dll
regsvr32 /s Daxctle.ocx
regsvr32 /s lmrt.dll
regsvr32 /s datime.dll
regsvr32 /s dxtrans.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s wshom.ocx
regsvr32 /s wshext.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll mstinit.exe /setup
regsvr32 /s msnsspc.dll /SspcCreateSspiReg
regsvr32 /s msapsspc.dll /SspcCreateSspiReg
echo.
echo.
echo 修复成功!任意键退出!
pause>nul

 

原文地址:http://houzhe11.javaeye.com/blog/611943

当你运行 `fso.CreateFolder folderPath` 出现“路径未找到”错误时,通常意味着VBA无法访问或识别你提供的文件夹路径。这可能是以下几个原因造成的: 1. **拼写错误**:确保你在创建文件夹路径时没有输入错误,包括大小写、斜杠方向(Windows上通常是反斜杠 `\`, 而不是正斜杠 `/`),以及完整路径。 2. **权限问题**:如果你尝试创建的文件夹不在当前用户有权限的位置,如受密码保护的网络驱动器,可能会引发此错误。 3. **网络连接问题**:对于网络路径,确保计算机已经连接到网络并且路径有效。 4. **临时或不存在的路径**:如果路径是动态生成的,可能存在临时的或者尚未存在的文件夹。 5. **VBA环境设置**:确认VBA宏是否允许访问特定的文件夹,有时出于安全考虑,需要启用“信任中心”的相关选项。 解决这个问题,你可以先检查路径的有效性,如果路径本身没问题,可以尝试添加一些错误处理代码,比如使用 `On Error Resume Next` 来捕获并处理可能出现的错误,例如: ```vba On Error Resume Next Dim result As Boolean result = fso.CreateFolder(folderPath) If Err.Number <> 0 Then MsgBox "路径 " & folderPath & " 不存在,错误信息:" & Err.Description Err.Clear ' 清除错误 Else MsgBox "文件夹已成功创建" End If On Error GoTo 0 ``` 这样,即使路径有问题,也能清楚地看到错误提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值