将变量传递给Find方法从一个工作簿到另一个工作簿

时间:2016-03-10 14:23:06

标签: excel-vba vba excel

我已经通过您的论坛以及其他许多人搜索了我的问题的答案。每次我接近我需要的东西;但每次我都达不到我的需要。 我正在使用两本开放的工作簿;一个有电话号码列表和与来电有关的数据;另一个与电话号码和电话号码的用户名相关。 在第一个工作簿上,我已将列表按电话号码分组,组之间有一个空行。然后我浏览列表并捕获要在第二个工作簿中的“查找”中使用的电话号码,这样我就可以匹配电话号码并捕获用户名以收回第一个工作簿并粘贴到下面的空白行相关组。 我的问题是,无论我如何修改我的查找,我都无法正常执行并在第二个工作簿中选择电话号码。我终于设法让它处理没有错误,但现在它不会进行搜索。这是我的VB代码;如果你能帮助我,我会非常感激。

如果我可以进行第一次搜索,我计划将其修改为循环以在整个第一个工作簿中继续,直到工作表结束。

Sub Test_Find_Match_Data()
'
' Test_Find_Match_Data Macro
'
Dim Phone_Number As String, _
        Called_Number As Long, _
        Find_Test As Range

    Range("A1").Select

    Cells.Find(What:="called number", _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False).Activate
    Selection.End(xlDown).Select

    Phone_Number = ActiveCell.Value

    Selection.Copy

    ActiveWindow.ActivateNext

    Range("A1").Select

        If Find_Test Is Nothing Then

        ActiveCell.Offset(RowOffset:=1, _
               ColumnOffset:=0).Activate

            If ActiveCell.Value <> Phone_Number Then

                Set Find_Test = Cells.Find(What:=Phone_Number, _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False, _
                    SearchFormat:=False)

                    Selection.Copy

                    Range("A1").Select

            ActiveWindow.ActivateNext

            End If

        End If

End Sub

1 个答案:

答案 0 :(得分:0)

尝试将Phone_Number = ActiveCell.Value替换为Phone_Number = ActiveCell.Text