Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 运行时错误50012-方法“;“出口”;对象的';VBComponent';失败错误_Excel_Vba - Fatal编程技术网

Excel 运行时错误50012-方法“;“出口”;对象的';VBComponent';失败错误

Excel 运行时错误50012-方法“;“出口”;对象的';VBComponent';失败错误,excel,vba,Excel,Vba,我有一段代码将模块和用户表单从一个工作簿转移到另一个在多个系统上工作的工作簿。然而,我有两个用户,它失败了错误 “运行时错误'50012'-对象'VBComponent'的方法'Export'失败” 代码如下: 公共子传输模块2() Const MODULE_NAME作为要传输的模块的String=“Module5”名称 Const UserForm As String=“UserForm1” 作为字符串的Dim ID ID=环境(“用户名”) 将文件设置为字符串 TEMPFILE=“C:/U

我有一段代码将模块和用户表单从一个工作簿转移到另一个在多个系统上工作的工作簿。然而,我有两个用户,它失败了错误

“运行时错误'50012'-对象'VBComponent'的方法'Export'失败”

代码如下:

公共子传输模块2()
Const MODULE_NAME作为要传输的模块的String=“Module5”名称
Const UserForm As String=“UserForm1”
作为字符串的Dim ID
ID=环境(“用户名”)
将文件设置为字符串
TEMPFILE=“C:/Users/”&ID&“/Desktop/Modul.bas”临时文本文件
TEMPFILE2=“UserForm.frm”
'出现错误时,请继续下一步
'**创建新工作簿
“**将模块导出到文本文件
工作簿(Module4.GetBook3).VBProject.VBComponents(模块名称).导出文件名:=TEMPFILE
'将模块导入新工作簿
工作簿(TemplateBook).VBProject.VBComponents.Import文件名:=TEMPFILE
工作簿(Module4.GetBook3).VBProject.VBComponents(UserForm).导出文件名:=TEMPFILE2
工作簿(TemplateBook).VBProject.VBComponents.Import文件名:=TEMPFILE2
'杀死文本文件
杀死临时文件
杀死临时文件2

End Sub
事实证明,这两个用户的登录ID与他们的桌面所在位置不同。我不确定它为什么这样做,但事实证明这是TEMPFILE路径中的位置问题。我不知道为什么我没有意识到它允许我使用UserForm传输上的默认路径,好像我已经深入研究过了,我会发现这就是解决方案。

这可能是访问权限吗?用户是否可以写入
C:/users/
?如果您注释掉
导出
行,其他行是否有效?WhiteHate-它实际上默认为他们的桌面,并且他们具有写入权限。我还建立了对他们计算机上特定文件夹的自定义访问,但仍然失败。Tim-如果我注释掉导出行,则导入行失败。不过,用户表单代码可以工作,这完全令人困惑。我本以为userform移动也会失败,但事实并非如此。“我已启用Visual Basic对象项目模式”-这个术语很奇怪,您的意思是您选中了Excel选项中的“信任访问VBA项目对象模型”复选框吗?