Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2012, 09:55   #1
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
Сообщение Цикл с переходом на ячейку.

Доброго времени форумчане!!!))) Нужна ваша помощь в следующем.
Реализован цикл:
PHP код:
                Set ra GetQueryRange(URL$, "1")
                 
' ïåðåáèðàÿ ÿ÷åéêè òàáëèöû-ðåçóëüòàòà, âûâîäèì ñïèñîê òåì â îêíî Immediate
                 '
If Not rz Is Nothing Then
             Set Rng 
Rng.Columns(2).Find("23000000000 Êðàñíîäàðñêèé êðàé", , xlValuesxlPartxlWhole)
                 If 
Not Rng Then
                
                 End 
If
                          
End If
                 
Next i
                 
              
                 
'If ra.Columns(1) WhatFind("*ÈÍÍ*",,xlValues,xlPart,xlWhole) Then do
                 
                 

Set ra = GetQueryRange(URL$, "1")
                 ' 
ïåðåáèðàÿ ÿ÷åéêè òàáëèöû-ðåçóëüòàòà, âûâîäèì ñïèñîê òåì â îêíî Immediate
                 
'If Not rz Is Nothing Then
                 '
Find ("23000000000")
                 
'If Not Find Then
                 
                 If Not ra Is Nothing Then
    Set c = ra.Columns(2).Find("*23000000000 Êðàñíîäàðñêèé êðàé*", , xlValues, xlWhole, xlPart)
   '
If Not (c Is NothingThen Debug.Print c.Offset(, 1).Value
    
If Not c Is Nothing Then
      
'n = n + 1: Debug.Print "Òåìà ¹" & n, oCell.Text
               ' 
Debug.Print c.Offset(, 1)
                
' '.outprint
                 
               Worksheets
("Ëèñò3").Cells(i3) = c.Cells(1)
               
'Worksheets("Ëèñò3").Range("B1").Cells(1 + i) = c & c.Offset(, 1)
               '
Right(ThisWorkbook.Sheets("Ëèñò3""B").Cells(i1), 19)
               
' With Sheets("Ëèñò3").Cells(1 + i, "B")

End If

'
End If

'End If

   '
End If
   
               
'End With
     '
Else: 1
                   
     
     Next i
 
'Loop
    End If
    End With
    
 End Sub 
все в принцыпе работает, но задался вопросом в строке
Set Rng = Rng.Columns(2).Find("23000000000 Êðàñíîäàðñêèé êðàé", , xlValues, xlPart, xlWhole)

Не могу реализовать цикл чтобы если этого значения "("23000000000 Êðàñíîäàðñêèé êðàé") нет, то цикл переходит на след ячейку в столбце А.
Заранее очень благодарен.
bboyRALF вне форума Ответить с цитированием
Старый 22.10.2012, 10:01   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

делается примерно так:

Код:
Do
  TextToFind = Значение из нужной ячейки ' Например, "23000000000 Êðàñíîäàðñêèé êðàé"
  Set Rng = Rng.Columns(2).Find( TextToFind , , xlValues, xlPart, xlWhole)
  ....
  следующее значение для поиска
Loop Until Not Rng is Nothing or (Закончились значения для поиска)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 22.10.2012, 10:31   #3
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
делается примерно так:

Код:
Do
  TextToFind = Значение из нужной ячейки ' Например, "23000000000 Êðàñíîäàðñêèé êðàé"
  Set Rng = Rng.Columns(2).Find( TextToFind , , xlValues, xlPart, xlWhole)
  ....
  следующее значение для поиска
Loop Until Not Rng is Nothing or (Закончились значения для поиска)
Спасибо,
а в
PHP код:
Loop Until Not Rng is Nothing or (Закончились значения для поиска
что имеется ввиду (закончились значения поиска) ?
bboyRALF вне форума Ответить с цитированием
Старый 22.10.2012, 11:27   #4
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
Лампочка

PHP код:
                 Set ra GetQueryRange(URL$, "1")
                 
' перебирая ячейки таблицы-результата, выводим список тем в окно Immediate
           
                    Do
                 TextToFind = "23000000000 Краснодарский край"

             Set Rng = Rng.Columns(2).Find(TextToFind, , xlValues, xlPart, xlWhole)
       
                 '
If ra.Columns(1WhatFind("*ИНН*",,xlValues,xlPart,xlWholeThen do
         
                 If 
Not ra Is Nothing Then
    Set c 
ra.Columns(1).Find("ИНН*", , xlValuesxlWhole)
   If 
Not (c Is NothingThen Debug.Print c.Offset(, 1).Value
  
'  If Not c Is Nothing Then
    '  
1Debug.Print "Тема №" noCell.Text
       
'          Debug.Print c & c.Offset(, 1)
                 '
.outprint
                 
               Worksheets
("Лист3").Cells(i2) = c.Offset(, 1)
               
'Worksheets("Лист3").Range("B1").Cells(1 + i) = c & c.Offset(, 1)
               '
Right(ThisWorkbook.Sheets("Лист3""B").Cells(i1), 19)
               
' With Sheets("Лист3").Cells(1 + i, "B")
 End If
         '
.Value ra.Range("J2").c.Offset(, 1)
        
'Worksheets("Лист3").Cells(1, "B") = "ИНН"
     ' 
End If
         
'MsgBox c & c.Offset(, 1)
           '
End With
           Set rak 
GetQueryRange(URL$, "1")
 If 
Not rak Is Nothing Then
  Set c 
rak.Columns(1).Find("КПП*", , xlValuesxlWhole)
   If 
Not (c Is NothingThen Debug.Print c.Offset(, 1).Value
    
'If Not c Is Nothing Then
     ' 
1Debug.Print "Тема №" noCell.Text
          
'       Debug.Print c & c.Offset(, 1)
                 '
.outprint
                 
               Worksheets
("Лист3").Cells(i3) = c.Offset(, 1)
'End If
End If
         

End If

    
                 End If
                   '
End If
   
    
 
Loop Until Not Rng Is Nothing Or "23000000000 Краснодарский край"
  
Next i
    
'End With
    
 End Sub 
Вставил в код теперь пишет что луп без ду либо next without for...

Где я ошибся? идентифицировать самостоятельно не получается...
bboyRALF вне форума Ответить с цитированием
Старый 22.10.2012, 12:06   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Видимо предоставленный код неполный, т.к. у Вас не только
Цитата:
next without for
а еще и End If лишние, и Next i "не при деле"
так что разобраться не получается, пробуйте в редакторе, перед выполнением кода понажимать кнопулечку Debug
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 22.10.2012, 12:31   #6
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
Вопрос

Цитата:
Сообщение от VictorM Посмотреть сообщение
Видимо предоставленный код неполный, т.к. у Вас не только
а еще и End If лишние, и Next i "не при деле"
так что разобраться не получается, пробуйте в редакторе, перед выполнением кода понажимать кнопулечку Debug
Разобрался))) только условие теперь не выполняется...
и в строчке.. Loop Until Not Rng Is Nothing Or не знаю что указывать после or

ниже исправленный код
PHP код:
 Set Rng GetQueryRange(URL$, "1")
                 
' перебирая ячейки таблицы-результата, выводим список тем в окно Immediate
           
                    Do
                

             Set c = Rng.Columns(2).Find("23000000000 Краснодарский край", , xlValues, xlPart, xlWhole)
       
                 '
If ra.Columns(1WhatFind("*ИНН*",,xlValues,xlPart,xlWholeThen do
            
Set ra GetQueryRange(URL$, "1")
                 If 
Not ra Is Nothing Then
             Set c 
ra.Columns(1).Find("ИНН*", , xlValuesxlWhole)
             If 
Not (c Is NothingThen Debug.Print c.Offset(, 1).Value

                 
                     Worksheets
("Лист3").Cells(i2) = c.Offset(, 1)
             
    
End If
     
        
           
Set rak GetQueryRange(URL$, "1")
            If 
Not rak Is Nothing Then
            Set c 
rak.Columns(1).Find("КПП*", , xlValuesxlWhole)
              If 
Not (c Is NothingThen Debug.Print c.Offset(, 1).Value
 
                 
               Worksheets
("Лист3").Cells(i3) = c.Offset(, 1)
end if
    
             
Loop Until Not Rng Is Nothing Or'что указывать чтобы вернуть...  
             
  
    
   End If
   Next i
   End With
 End Sub 
bboyRALF вне форума Ответить с цитированием
Старый 22.10.2012, 14:13   #7
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
Вопрос

Цитата:
Сообщение от VictorM Посмотреть сообщение
Видимо предоставленный код неполный, т.к. у Вас не только
а еще и End If лишние, и Next i "не при деле"
так что разобраться не получается, пробуйте в редакторе, перед выполнением кода понажимать кнопулечку Debug
весь код предоставить не могу, т.к. ограничение на текст сообщения...
bboyRALF вне форума Ответить с цитированием
Старый 22.10.2012, 14:35   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
т.к. ограничение на текст сообщения...
ну так приложите пример Вашего файла вместе с кодом)
Сразу надо было так делать.
Файлик архивируете и прикрепляете к своему сообщению.
(Нажмите "Расширенный режим" внизу окна ввода быстрого ответа)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 22.10.2012, 14:45   #9
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
ну так приложите пример Вашего файла вместе с кодом)
Сразу надо было так делать.
Файлик архивируете и прикрепляете к своему сообщению.
(Нажмите "Расширенный режим" внизу окна ввода быстрого ответа)
Сразу не догодался))) во вложении
Вложения
Тип файла: rar буджет22223.rar (72.4 Кб, 6 просмотров)
bboyRALF вне форума Ответить с цитированием
Старый 23.10.2012, 15:41   #10
bboyRALF
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 14
По умолчанию

сделал условие, но не работает (
Do

Set c = Rng.Columns(2).Find("23000000000 Краснодарский край", , xlValues, xlWhole)
If Not Rng Then

Exit Do
End If
bboyRALF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определиться с переходом с Delphi на C++ muhahp Свободное общение 12 25.01.2012 04:39
Проблема с переходом (bat) JonMagon Помощь студентам 8 11.07.2011 16:08
Запись в файл с переходом на другую строку Syltan Общие вопросы по Java, Java SE, Kotlin 3 29.07.2010 18:03
Помогите с переходом в файл Справки!!! Sanek777 Общие вопросы Delphi 2 31.07.2008 13:27