使用数组搜索活动工作表

时间:2016-09-13 15:48:44

标签: arrays excel vba excel-vba

我有一张工作表,会定期更新数据库中重复记录的详细信息。

我正在尝试创建一个搜索特定记录的宏,但是因为我是Excel VBA的新手,我正在努力。

我目前的代码如下: 有更多的名字(确切地说是21,但是为了节省时间,我已经删除了这些名字)

    @Override
    public void onPostExecute(List<Modules> result) {

        if (pDialog.isShowing()){

       RecyclerView.LayoutManager  Manager =new LinearLayoutManager(DepartureModule.this);

            RecyclerView.Adapter adapter = new ModuleAdapter(result);

            RecyclerView RVODetails = (RecyclerView) findViewById(R.id.RVODetails);
            RVODetails.setLayoutManager(Manager);

            RVODetails.setAdapter(adapter);
            pDialog.dismiss();
        }

宏将运行但是在测试时我得到msgbox没有找到代理候选者,尽管其中一个名称有条目。

我正在努力弄清楚我哪里出错了,并希望得到任何帮助。

1 个答案:

答案 0 :(得分:0)

你需要将错误的回报拉出循环,否则即使匹配也会得到至少20个假。

并且您不需要外部循环,因为FIND会将整个范围视为一个。

Dim lnglastrow As Long
Dim intnamemax As Integer
Dim strName() As String
Dim fnd As Boolean

intnamemax = 21

ReDim strName(1 To intnamemax)

 strName(1) = "Bob Smith"
 strName(2) = "Rhys Jones"
 strName(3) = "Rebecca Hickling"

 lnglastrow = ActiveSheet.UsedRange.Rows.Count

For i = 1 To intnamemax
    Set c = Range("A2:A" & lnglastrow).Find(strName(i), LookIn:=xlValues)
    If Not c Is Nothing Then
        MsgBox "Proxy Candidate Found at " & c.Address
        fnd = True
        Exit For
    End If
Next i
If Not fnd Then
    MsgBox "No Proxy Candidates Found ", vbOKOnly, "Success!"
End If

End Sub