2016-03-10 5 views
0

Я искал ваш форум, а также многие другие ответы на мой вопрос. Каждый раз, когда я приближаюсь к тому, что мне нужно; но каждый раз мне не хватает удовлетворения. Я работаю с двумя открытыми книгами; один из которых содержит список телефонных номеров и данных, связанных с входящими вызовами; другой - номера телефонов и имя пользователя для номера телефона. В первой книге я разделил список на группы по номеру телефона с пустой строкой между группами. Затем я просматриваю список и фиксирую номер телефона, который будет использоваться в «Найти» во второй книге, поэтому я могу сопоставить номер телефона и захватить имя пользователя, чтобы вернуться к первой книге и вставить в пустую строку ниже связанной группы. Моя проблема заключается в том, что независимо от того, как я изменяю свою находку, я не могу заставить ее правильно работать и выбрать номер телефона во второй книге. Мне, наконец, удалось заставить его обрабатывать без ошибок, но теперь он не будет выполнять поиск. Вот мой код 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 
+0

Как телефонные номера, хранящимися в каждой книге - как форматированный текст или как истинные цифры? – Rory

+0

Номера телефонов хранятся как истинные номера, отформатированные как номера телефонов. –

+0

Попробуйте объявить номер телефона длинным – Rory

ответ

0

Попробуйте заменить Phone_Number = ActiveCell.Value с Phone_Number = ActiveCell.Text

+0

Я изменил запись «ActiveCell.Value» на «ActiveCell.Text», как вы предполагали, и получил тот же результат. –

+0

Проблема, с которой я все еще сталкиваюсь, заключается в том, что когда я нахожусь во второй книге, оператор «Найти» не перемещается из текущей ячейки, чтобы найти значение, которое я пытаюсь включить в качестве критериев. –

Смежные вопросы