2014-09-23 5 views
-1

Итак, в настоящее время у меня есть функция, которая будет искать два члена в листе и возвращать True или False, в зависимости от того, нашел он это или нет. Теперь, что я пытаюсь выполнить, если я нахожу эту запись, я хочу скопировать всю строку, где была найдена запись, на другой лист. У меня возникли проблемы, и я не совсем уверен, как действовать дальше.VBA Скопируйте строку на другой лист, если она соответствует запросу

Вот мой исходный код:

Private Function Search(BinStr As String, L4 As String) As Boolean 
    Dim rng1 As Range 
    Dim rng2 As Range 

    Set rng1 = Worksheets("FirstSheet").Range("A:A").Find(BinStr, , xlValues, xlWhole) 
    Set rng2 = Worksheets("FirstSheet").Range("C:C").Find(L4, , xlValues, xlWhole) 
    If Not rng1 Is Nothing And Not rng2 Is Nothing Then 
     rng1.Offset(0,1).Copy Destination:=Worksheets("Matches").Range("A") 
     Search = True 
    Else 
     Search = False 
    End If 
End Function 
+0

Привет, его было некоторое время для моего VBA но изменяя эту строку rng1.Offset (0,1) .Copy Направление: = Worksheets ("спичками") Range ("A") к . rng1.Offset (0,1) .EntireRow.Copy Назначение: = Рабочие листы («Соответствует»). Диапазон («A») помощь вообще? – ojf

+0

Но у этого было бы 2 строки, в которых бы найти совпадения ... Хотели бы вы и скопировать? И что, если оба совпадения встречаются в одной строке? –

+0

Кроме того, это не так важно, как это возможно, но вы, как правило, не хотите, чтобы функция выполняла действие (например, строки копирования). Обычно она используется для возврата значения, а затем используется это значение ... –

ответ

1

Функция предназначена для возврата значений. Основываясь на предоставленной вами информации, вы действительно должны использовать подпрограмму, которая использует вашу функцию пользовательского поиска.

Sub CopyMatches() 
    If Search("string","other string") Then 
     'code to copy row data to other worksheet 
    End If 
End Sub 
+0

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

+0

Редактируйте свой вопрос с помощью кода, который использует эту функцию. Ваши ответы будут отражать то, насколько подробно вы нам даете. –

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