传递一个 ComboBox 作为参数

use*_*160 2 outlook vba combobox

我需要将 ComboBox 传递给不同类模块中的方法。首先我将类模块中的方法定义为:

Public Sub initializeCombo(ByVal s As String, ByRef c As ComboBox)
Run Code Online (Sandbox Code Playgroud)

并从一种形式调用它:

initializeCombo(s, frmMyForm.cboBox)
Run Code Online (Sandbox Code Playgroud)

这会导致类型不匹配。如果我在表单后面的代码中定义方法,而不是在单独的类模块中,这会起作用。

ste*_*nci 5

这是一个不匹配,因为OptionButton不是ComboBox。尝试将其更改为ByRef c As OptionButton.

您可以通过替换ByRef c As ComboBox为 来解决这个问题c As Variant,然后在第一行设置断点并检查监视窗口正在传递什么。这通常有助于了解当传递的对象不是预期类型时发生了什么。