Страницы: 1
RSS
помогите с поиском
 
по нажатии кнопки на первом листе  происходит поиск по списку имен со второго листа

но проблема в том что если на первой странице отсутсвует имя то выдается ошибка и ругается на  Cells.Find
как избавиться подскажите пожалуйста как продолжить поиск если имя отсутсвует


Код
Sub Кнопка1_Щелчок()
For nextTP = 0 To 90 Step 2
sledTP = 3 + nextTP
Set vremya = Worksheets("лИСТ1"    .Cells(1, 1)
vremya = vremya - 5
Set poTPimya = Worksheets("лИСТ2"    .Cells(sledTP, 1)
Cells.Find(What:=poTPimya, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
 xlNext, MatchCase:=False, SearchFormat:=False).Activate
 lRow = Selection.Row
 Cells.FindNext(After:=ActiveCell).Activate
 Nrow = Selection.Row
nakladPoTP = (Nrow - lRow) - 1
 Sheets("Лист2"    .Cells(sledTP, vremya).Value = nakladPoTP
 MsgBox poTPimya & Nrow & lRow & nakladPoTP
Next nextTP
End Sub

 
Изменено: Aleksander12 - 22.01.2014 22:43:20
 
добавьте проверку

Код
If (poTPimya<>null) then пошел код, или 
If (poTPimya<>"" then


Если я правильно понял, что именно имеется ввиду, файл не смотрел.
Изменено: Антон - 22.01.2014 18:01:19
 
так надо проверять не переменнную poTPimya а именно результат поиска
Cells.Find(What:=poTPimya, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate


а если добавляешь if оно начинает ругаться на complite error: next without for
 
Проверяй результат. Из моей программки. Подкрути под свои нужды:
   
Код
    Set rng = .Find(What:=TextBox1.Value, LookIn:=xlValues, LookAt:=xlPart)
        If Not rng Is Nothing Then
            Адрес = rng.Address
            Do
                ListBox1.AddItem rng
               Set rng = .FindNext(rng)
            Loop While Адрес <> rng.Address
        End If
 
А зачем так много .Activate?
 
А в чём смысл того макроса в файле? Что хотите сделать?
 
спасибо сейчас прийду на работу проверю! а смысл макроса разнести данные на другую страницу найдя их на первой по имени человека  
 
В смысл тоже не вникал. Разберись с условиями, выкикинь лишнее
Код
Dim Rnx As Range, Rn2 As Range
Set Rnx = Cells.Find(What:=poTPimya, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)
 If Not Rnx Is Nothing Then
    lRow = Rnx.Row
    
    Set Rn2 = Cells.FindNext(After:=ActiveCell)
    Nrow = Rn2.Row
 Else
 End If
 
всем спасибо разобрался =) все работает как надо =)
 
А можно сделать, что бы Rang брался из закрытой книги?
Страницы: 1
Читают тему
Наверх