根据ActiveX组合框

时间:2015-12-03 09:14:07

标签: excel vba excel-vba

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

到目前为止,这是我的代码......我不太确定我哪里出错了,但我收到的错误是"参数不是可选的"。

这是我目前在Sheet1(数据库)中的代码:

Public Function ContactAdd(SearchedCompany As String) As Long
Dim cF As Range

With Worksheets("Database").Range("B:B")
Set cF = .Find(What:=Worksheets("Database").ComboBox1, After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

If Not cF Is Nothing Then
    cF.Offset(1, 0).EntireRow.Insert
    ContactAdd = cF.Offset(1, 0).Row
    Exit Function
End If
End With

ContactAdd = 0
End Function

Private Sub InsertContact1_Click()
ContactAdd
End Sub

私有子用于调用该函数的按钮,但这是导致错误的原因。我哪里错了?

1 个答案:

答案 0 :(得分:0)

目前,您的ContactAdd函数接受一个字符串参数,并且您在不传递字符串的情况下调用它。

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

Microsoft.Azure.Documents.Client.dll

否则,您可以在调用函数时传递参数:

Public Function ContactAdd() As Long