我有一段代码,用于将模块和用户表单从一个工作簿传输到在多个系统上运行的另一个工作簿。但是,我有 2 个用户失败并出现错误
“运行时错误 '50012' - 对象 'VBComponent' 的方法 'Export' 失败”
代码如下:
Public Sub TransferModule2()
Const MODULE_NAME As String = "Module5" ' Name of the module to transfer
Const UserForm As String = "UserForm1"
Dim ID As String
ID = Environ("USERNAME")
Dim TEMPFILE As String
TEMPFILE = "C:/Users/" & ID & "/Desktop/Modul.bas" ' temp textfile
TEMPFILE2 = "UserForm.frm"
' On Error Resume Next
'**Create new workbook
'** export the module to a textfile
Workbooks(Module4.GetBook3).VBProject.VBComponents(MODULE_NAME).Export fileName:=TEMPFILE
'import the module to the new workbook
Workbooks(TemplateBook).VBProject.VBComponents.Import fileName:=TEMPFILE
Workbooks(Module4.GetBook3).VBProject.VBComponents(UserForm).Export fileName:=TEMPFILE2
Workbooks(TemplateBook).VBProject.VBComponents.Import fileName:=TEMPFILE2
'kill the textfile
Kill TEMPFILE
Kill TEMPFILE2
End Sub
第一个导出代码发生错误。我在这些计算机上启用了 Visual Basic 对象项目模式,但它仍然失败,但在任何其他计算机上都没有问题。这些计算机与我的计算机在同一时间进行成像,并且该文件位于单个位置,因此没有代码修改。我们运行的是完全相同的 Office 版本,并且具有完全相同的更新。
什么可能与此导出对象语句发生冲突,而不是引用库或版本控制问题?
最佳答案
事实证明,这两个用户的登录 ID 与其桌面所在位置不同。我不确定 IT 为何这样做,但事实证明这是 TEMPFILE 路径中的位置问题。我不知道为什么我没有发现它让我在用户表单传输上使用默认路径,就好像我更深入地研究过一样,我会发现这就是解决方案。
关于excel - 运行时错误 50012 - 对象 "Export"的方法 'VBComponent' 失败错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34753140/