Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2499|回复: 2

关于修改注册表,值没有更新的情况。解决丢失REFEDIT的引用问题。

[复制链接]
发表于 2016-3-7 20:34 | 显示全部楼层 |阅读模式
  由于写的宏涉及到refedit控件,在不同电脑上使用时就会出现因为“引用”REFEDIT控件的错误。应该是因为不同版本EXCEL的那个控件的DLL位置不同了,所以这个宏一旦在不同电脑上进行流转就会出现丢失REFEIT的错误。
      百度之下,发现这段程序可以解决问题,只有用上application.path定位好路径,找到目录下的REFEDIT.DLL进行动态引用应该就可以能解决问题了。
Sub XXX()
    Dim myob
    On Error Resume Next
    Set myob = ThisWorkbook.VBProject
    If Err <> 0 Then        '如果程序出错
        Application.SendKeys "%TMST%V~"    '用程序调用快捷键完成选取信任对visual basic项目的访问操作 =================》但是为难的是,有这么个前提就是,要选取信任VB项目的访问操作,我试过运行这段代码,并没实现选取信任。就只是创建了一个名为ST的空白子程序。
    End If
    ThisWorkbook.VBProject.References.AddFromFile "D:\Program Files\Microsoft Office\Office12\REFEDIT.DLL"
   '引用
End Sub


     但我通过手动设置选取信任对visual basic项目,把钩打上之后,上述代码引用确实是成功的。

     于是我打算另辟路径,搜索关于怎么利用其它办法实现选取信任对VBA工程对象模型的访问,于是就发现可以改注册表。

     通过Wscript.Shell的REGWRITE 总算知道怎么去修改值了,但是改完之后,注册表里的 值  并不更新~~~~~~

3}J1_)9)A8EVI{GY1F(5@`D.png



    我点击进了编辑窗口,发现写入注册表的数值1,确实是写入了,但是上面的值却不更新,还是显示0~~~~~~~~除非我在注册表按下F5刷新~那我还要搞得那么复杂干啥,然并卵啊。

    因此,是不是我在啥步骤出错了~~给点线索,给点提示我去找答案就好啦。或者有无什么更加简单的办法?求指点指点~







excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2016-3-7 22:16 | 显示全部楼层
既然没人回答,我补充点情况吧~刚才自己调试了一些情况

我估计这问题有点无解了,我最终没使用API,刚才灵机一动,对注册表不用直接写入修改值,而是先删除再写入,某种程度变成了创建,直接实现了下图信任对VBA的勾选。
QQ图片20160307214817.png

然而,并没卵用。对引用的并不成功~~~~
QQ图片20160307214822.png

究其原因,就算界面上那个勾选上了,但不自己手动到那个页面,点右下角的确定,代码区就是不认可这个勾选。

我发现,这样先删除再写入的法子,虽然能使勾选显示,但是注册表仍是不刷新的。而注册表的这个值是和勾选关联的,或许是只做到某种程度的关联,但不完全吧。恐怕注册表的刷新才是关键啊。




回复

使用道具 举报

 楼主| 发表于 2016-3-7 22:24 | 显示全部楼层
刚写了注册表文件:
QQ图片20160307221217.png

使用后,注册表更新值了,EXCEL内的设置也自动钩上了~~

然而,还是然并卵,不在设置页面手动点一次确定,就算勾上也然并卵。

搜了许多前人的文章来看,不知道他们的运行环境,但我2007+2013试过并不行。

估计这种安全性的玩意,该是堵死了吧,不然写个病毒岂不是太容易了~

求大神指点,不行也就放弃了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 17:56 , Processed in 0.303855 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表