调用userform时键入不匹配

时间:2015-01-05 22:31:33

标签: vba userform type-mismatch import-module

我确信这很简单,但我看了一遍,找不到解释。当然,很多其他人想将模块和用户表单移动到另一个工作簿。我导出了3个模块和1个用户窗体,然后将它们导入到新的工作簿中。导出的用户窗体名称是“NUI”,当我在导入名称后查看新工作簿中的属性时仍然是“NUI”。但是,现在当我尝试运行sub来显示userform时,我得到一个运行时数据不匹配错误,并在NUI.StartUpPosition行中突出显示NUI。任何想法为什么这不再有效?是否存在需要打破的某种联系?该模块是否仍尝试在其他文件中找到一些userform 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

1 个答案:

答案 0 :(得分:0)

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

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