VBA'set typelib = createobject(“scriptlet.typelib”)'Permission Denied

时间:2017-07-13 13:35:11

标签: excel vba excel-vba

我的代码出现问题,似乎已经出现了一夜。这有一些特点,所以我会尝试尽可能多地提供细节。

有问题的文件是一个excel工作簿,它根据传入的数据生成一个xml文件。该文件通过宏打开,填充和保存,此部分运行正常。

在此例程中为.xml创建GUID时出现问题:

Function GenGUID() As String

Dim strGUID As String
Dim TypeLib As Object

Set TypeLib = CreateObject("Scriptlet.TypeLib")
strGUID = TypeLib.guid

'dump the curly brackets
strGUID = Replace(strGUID, "{", "")
strGUID = Replace(strGUID, "}", "")

strGUID = Left(strGUID, Len(strGUID) - 2)

GenGUID = strGUID

End Function

具体来说,行:

Set TypeLib = CreateObject("Scriptlet.TypeLib")

这会引发“运行时错误70:权限被拒绝”。

现在,特点。

  • 在试用过的4台机器中,它适用于其中一台。
  • “工作”机器的用户尝试在其他3台机器上运行该文件无济于事。
  • 在3台“破损”机器中,2台机器在一夜之间安装了更新,而另一台机器在几天内没有安装更新。 “工作”机器自2月份以来没有安装过更新。
  • 管理员帐户已尝试运行该文件以排除隔夜权限更新。
  • 昨天(2017年7月12日)该文件在其中一台“损坏的”机器上运行正常。
  • 已检查所有参考库,它们与“工作”机器匹配。
  • 所有4台计算机上使用的Excel版本均为2013 Pro。

上面的突出是更新问题。但是,昨天文件运行良好的机器是“破损”的机器,没有在一夜之间更新,将其排除在外。

我们已经尝试了所有我们能想到的东西,以及大量的网络拖网寻找答案。一切都没有。

有没有人有任何想法?

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

KB3213624似乎是Office 2010安全更新。以下是其他版本的MS Office的KB:

Microsoft Office 2013 Service Pack 1 (64-bit editions)      3213555 
Microsoft Office 2013 Service Pack 1 (32-bit editions)      3213555 
Microsoft Office 2007 Service Pack 3                        3213640
Microsoft Office 2016 (32-bit edition)                      3213545
Microsoft Office 2010 Service Pack 2 (32-bit editions)      3213624 
Microsoft Office 2010 Service Pack 2 (64-bit editions)      3213624
Microsoft Office 2013 RT Service Pack 1                     3213555
Microsoft Office 2016 (64-bit edition)                      3213545

答案 1 :(得分:0)

我们现在已经解决了我们的问题。

显然是由更新引起的。在回滚所有“破损”机器上的最后一批更新后,我们现在有4台“工作”机器。

答案 2 :(得分:0)

我们今天早上也遇到了这个问题。

删除Windows更新KB3213624。这解决了错误。