尝试编译表单时,出现两种编译错误。任何包含KeyDown过程的子项目都会发生这种情况。我遇到的第一个错误是
“未定义用户定义的类型”
我得到的另一个错误是:
“过程声明与事件或事件的描述不匹配 具有相同名称的过程”
我已经链接了Microsoft Forms 2.0对象库。当我这样做时,“未定义用户定义类型”错误将更改为过程错误。我找不到任何其他人遇到的问题。
Private Sub cmbDriverNumber_KeyDown(Index As Integer, KeyCode As MSForms.ReturnInteger, Shift As Integer)
Call cView.sendBack(KeyCode, Shift, Me)
End Sub
答案 0 :(得分:1)
首先,我的印象是不建议使用MS Forms库,因为它更像是MS Office应用程序中使用的内部库。 (尽管我已经使用了这个库)。 YMMV。
第二,如果您要将一些代码复制粘贴到依赖于MS Forms的应用程序中,但尚未在项目中添加对该库的引用,则应该使用User-defined type not defined
。
第三,您的代码段包含一个Index
,这意味着它正在被控制数组调用。如果此代码只是您粘贴到应用程序中的内容,并且没有使用cmbDriverNumber
控件数组,则签名是错误的。而是尝试从事件签名中删除Index As Integer,
。
祝你好运!
答案 1 :(得分:0)
好吧,简单的答案就是将返回变量定义为Integer,因为这是KeyDown事件的定义方式。我对MSForms库不熟悉,但是MSForms类型的元素的类型是否可能不是整数(例如Long)呢?