Vba 基于ActiveX组合框中的值插入行

Vba 基于ActiveX组合框中的值插入行,vba,excel,Vba,Excel,在B栏,我有一份公司的名单。我在工作表顶部有一个名为ComboBox1的组合框,还有一个名为InsertContact1的按钮。组合框从B列中提取所有公司,我想做的是,如果用户从下拉列表中选择公司D并点击“插入联系人”按钮,它将在B列中找到该公司并在下面插入一行-这将允许用户在另一列中输入该公司的联系人(此时手动) 这是我到目前为止的代码。。。我不太确定哪里出了错,但我得到了一个错误,上面写着“参数不是可选的” 这是迄今为止我在Sheet1(数据库)中的代码: private sub用于按钮调用

在B栏,我有一份公司的名单。我在工作表顶部有一个名为ComboBox1的组合框,还有一个名为InsertContact1的按钮。组合框从B列中提取所有公司,我想做的是,如果用户从下拉列表中选择公司D并点击“插入联系人”按钮,它将在B列中找到该公司并在下面插入一行-这将允许用户在另一列中输入该公司的联系人(此时手动)

这是我到目前为止的代码。。。我不太确定哪里出了错,但我得到了一个错误,上面写着“参数不是可选的”

这是迄今为止我在Sheet1(数据库)中的代码:


private sub用于按钮调用函数,但这是不断出现错误的原因。哪里出错了?

此时您的ContactAdd函数接受一个字符串参数,并且您在调用它时没有传递字符串

由于未使用函数的字符串参数,因此可以从函数定义中删除SearchedCompany参数,并像现在一样调用它:

Public Function ContactAdd() As Long
否则,您可以在调用函数时传递参数:

Private Sub InsertContact1_Click()

    ContactAdd ("some string")

End Sub

您需要向ContactAdd函数传递一个参数。就像ContactAdd(“某家公司”)哦,太好了,我没有意识到这一点。当我只使用任何文本时,它都会起作用。。。这是做什么的?它的工作方式是ContactAdd函数将SearchedCompany参数作为字符串。目前,您没有使用该字符串进行任何操作,因此您可以从函数中删除参数,然后在没有任何参数的情况下调用该函数。对,明白了。非常感谢。如果你提供你的回答,我可以标记这个问题已解决。
Private Sub InsertContact1_Click()

    ContactAdd ("some string")

End Sub