为什么标签在VBA中获得types不匹配错误,但combobox不?

我正在运行Excel 2003.我有以下VBA代码,对应于包含ComboBox控件和Label控件的简单UserForm 。 它通过保存ComboBox但在保存Label时生成types不匹配错误。

 Private whatComboBox As ComboBox Private whatLabel As Label Private Sub UserForm_Initialize() Call SaveComboBox(SomeComboBox) Call SaveLabel(SomeLabel) End Sub Private Sub SaveComboBox(aComboBox As ComboBox) Set whatComboBox = aComboBox End Sub Private Sub SaveLabel(aLabel As Label) Set whatLabel = aLabel End Sub 

[我很欣赏VBA与大多数其他语言相比是有限的。 但是我不会认为这会是错的。

谢谢大家!

尝试这个

 Private whatComboBox As msforms.ComboBox Private whatLabel As msforms.Label Private Sub UserForm_Initialize() Call SaveComboBox(SomeComboBox) Call SaveLabel(SomeLabel) End Sub Private Sub SaveComboBox(aComboBox As msforms.ComboBox) Set whatComboBox = aComboBox End Sub Private Sub SaveLabel(aLabel As msforms.Label) Set whatLabel = aLabel End Sub 

关于你的查询

它通过保存ComboBox工作,但在保存标签时生成types不匹配错误。

您必须限定Label对象,因为Excel也有一个名为Label的对象

替代

 Private whatComboBox As Control Private whatLabel As Control Private Sub UserForm_Initialize() Call SaveComboBox(SomeComboBox) Call SaveLabel(SomeLabel) End Sub Private Sub SaveComboBox(aComboBox As Control) Set whatComboBox = aComboBox End Sub Private Sub SaveLabel(aLabel As Control) Set whatLabel = aLabel End Sub