VBA 'set typelib = createobject("scriptlet.typelib")'权限被拒绝

标签 vba excel

我的代码有一个问题,似乎是在一夜之间突然出现的。这有一些特殊之处,所以我会尽力提供尽可能多的细节。

有问题的文件是一个 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 台在一夜之间安装了更新,而另一台则在几天内没有安装更新。自二月份以来,“工作”机器就没有安装过更新。
  • 管理员帐户已尝试运行该文件以排除夜间权限更新的可能性。
  • 该文件昨天(2017 年 7 月 12 日)在其中一台“损坏”的机器上运行良好。
  • 所有引用库均已检查且与“工作”机器匹配。
  • 所有 4 台计算机上使用的 Excel 版本都是 2013 Pro。

上面最突出的是更新问题。但是,文件昨天运行良好的机器是“损坏”的机器,没有在一夜之间更新,排除了这一点。

我们已经尝试了所有能想到的方法,并通过大量的互联网搜索来寻找答案。一切都毫无结果。

有人有什么想法吗?

预先感谢您的帮助。

最佳答案

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

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

关于VBA 'set typelib = createobject("scriptlet.typelib")'权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45082258/

相关文章:

vba - 无法点击某个链接

正则表达式从带有回车数据 VBA 的单元格中删除数字+空格

vba - 复制到新工作表后用颜色填充行

json - 在 VBA 中访问 JSON-Object 中的嵌套值

多个工作表上的 Excel 方案管理器

python - 如何使用 Python 将多个工作表中的 .csv 文件合并为一个 .xls 文件?

vba - 使用 VBA 解析 MS Word 文档中的文本

excel - 将文件从一个文件夹移动到另一个文件夹

excel - 为什么在运行 "Script out of range"的 vba 代码复制数据时出现 "For Loop"错误?

excel - 将多维数组转换为溢出范围