Excel2007 运行时错误'91' 对象变量或 With 块变量没有设置 的一种解决办法

运行时错误'91'

对象变量或 With 块变量没有设置

 

今天用了一段VBA小程序,在同事机器上能用,在我机器上用就是不行,具体是这段代码报错:

Set Sheet1 = ThisWorkbook.Worksheets(1)

调试时添加监视发现,ThisWorkbook对象是有效的,可以输出文档名称,但其子对象Worksheets、sheets等东东全部是nothing

 

网上也找不到有效解决办法,什么注册控件,安装office补丁包都试了,也没解决,就差重装office。

 

仔细观察,发现问题有这3个特点:

1.同事机器上的Excel2007上能用,我机器上Excel2007就不能用

2.VBA程序是用Excel2003写的,我用的Excel2007打开执行

3.将Excel2003文件另存为2007的xlsx文件时,总提示文件中宏无法保存,要求选用支持宏的文件类型。选择支持宏的2007 xlsm格式,还是不行

 

最先老怀疑的是2007安装有问题,因为之前装过2003,然后又卸载再装2007,可能有些东西没卸载干净,导致2003跟2007冲突。当然这种怀疑只能靠重装2007来验证。

不甘心重装,又仔细查看过之前查看过的Excel2007安全中心设置,这次勾选了这个选项:

Excel选项 --- 信任中心设置 --- 加载项, 勾选“要求受信任的发布者签署应用程序加载项”

 

勾选这项后,原来不能运行的VBA程序能正常运行了。

 

虽然不知道微软做了什么鸟设置,但问题总算是解决了。Excel2007 用得很不爽,被迫适应后,又这样那样的问题。

 

把解决方法记下来,搜到的TX可以参考下。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值