调用用户窗体时类型不匹配

Type mismatch when calling userform

我确定这很简单,但我已经翻遍了,找不到解释。当然,很多其他人希望将模块和用户窗体移动到另一个工作簿。我导出了 3 个模块和 1 个用户窗体,然后将它们导入到一个新的工作簿中。导出的用户窗体名称是 "NUI",当我在导入后查看新工作簿中的属性时,名称仍然是 "NUI"。但是,现在当我尝试运行子程序来显示用户窗体时,出现运行时数据不匹配错误并且 NUI 在行 NUI.StartUpPosition 中突出显示。任何想法为什么这不再有效?是否有某种 link 需要打破?该模块是否仍在尝试在其他文件中查找一些用户窗体 NUI?如果我删除新工作簿中的用户窗体并添加新的用户窗体,当我尝试将其命名为 NUI 时,它告诉我该名称正在使用中。有什么想法吗?

Sub CallUserForm()
    '  Calls UserFrom NUI and centers it to excel window whether it is full screen or not.
    PO.Unprotect Password:="1234"
    PO.Activate

    NUI.StartUpPosition = 0
    NUI.Top = Application.Top + 125
    NUI.Left = Application.Left + Application.Width / 2 - NUI.Width / 2
    NUI.Show
    PO.Protect Password:="1234"
End Sub

我刚刚尝试了您描述的方法(导出表单和模块,导入到新的电子表格中)。它对我来说很好用。但是:我想知道您是否不小心将表格的副本导入了原始文件(而不是新文件)。

如果我从新文件中删除表单,我会遇到与您相同的错误,因此请检查您是否确实导入了新位置。