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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 08:59   #1
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию Цикл

Здравствуйте ВСЕМ!
имеется цикл:
Код:
For i = 10 To rFndRng.Row
        If cells(i, 2) Like "*ИП*" Then
        'j = 2
            'While j = cell.Interior.ColorIndex = 36
                cells(i, lLastCol) = cells(i + 1, lLastCol) + cells(i + j, lLastCol)
            'Wend
        End If
    Next i
Вопрос: j должен быть от 2ух до тех пор пока строка жёлтая ну или до тех пор пока не началась строка cells(i, 2) Like "*ИП*"(фиолетовая)
как организовать цикл, с помощью чего?
заранее спасибо!!!
Артур Иваныч вне форума Ответить с цитированием
Старый 09.12.2009, 10:06   #2
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

вот более точная:
Код:
Private Sub CommandButton1_Click()
    Dim lLastCol As Long
    lLastCol = cells(9, Columns.Count).End(xlToLeft).Column
    
    Dim rFndRng As Range, lCol As Long
    Dim rFndRn As Range, rFnd As Range, rFndR As Range
    Set rFndRng = ActiveSheet.UsedRange.Find("ИТОГО", , xlValues, xlWhole)

    Set rFndRn = ActiveSheet.UsedRange.Find("№ ИП", , xlValues, xlWhole)
    
    Dim Col As Long, ii%, jj%, llCol As Long, k%
    For ii = 10 To rFndRng.Row
    If cells(ii, 2) Like "*ИП*" Then
    cells(ii, lLastCol) = cells(ii + 1, lLastCol)
    
    For jj = 2 To 3
    
    cells(ii, lLastCol) = cells(ii, lLastCol) + cells(ii + jj, lLastCol)

    Next jj
    End If
    Next ii
End Sub
но вместо j=2 to 3 нужно вместо 3 такую переменную до до тех пор пока строка жёлтая ну или до тех пор пока не началась строка cells(i, 2) Like "*ИП*"(фиолетовая)
Артур Иваныч вне форума Ответить с цитированием
Старый 09.12.2009, 11:56   #3
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

Попробуйте организовать цикл который посчитает необходимое вам jj
Что то вроде того:
For ii = 10 To rFndRng.Row
If cells(ii, 2) Like "*ИП*" Then
cells(ii, lLastCol) = cells(ii + 1, lLastCol)
CountJJ = 0
Do while cells(ii+CountJJ+2,lLastCol).interi or.color = ...
CountJJ = CountJJ+1
loop
For jj = 2 To CountJJ

cells(ii, lLastCol) = cells(ii, lLastCol) + cells(ii + jj, lLastCol)

Next jj
End If
Next ii
Не бывает сложных задач, бывают сложные решения

Последний раз редактировалось Xpoft; 09.12.2009 в 12:03.
Xpoft вне форума Ответить с цитированием
Старый 09.12.2009, 11:58   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub CommandButton1_Click()
    Dim lLastCol As Long
    lLastCol = Cells(9, Columns.Count).End(xlToLeft).Column

    Dim rFndRng As Range, lCol As Long
    Dim rFndRn As Range, rFnd As Range, rFndR As Range
    Set rFndRng = ActiveSheet.UsedRange.Find("ИТОГО", , xlValues, xlWhole)

    Set rFndRn = ActiveSheet.UsedRange.Find("№ ИП", , xlValues, xlWhole)

    Dim Col As Long, ii%, jj%, llCol As Long, k%
    For ii = 10 To rFndRng.Row
        If Cells(ii, 2) Like "*ИП*" Then
            Cells(ii, lLastCol) = Cells(ii + 1, lLastCol)

            jj = 2
            While Cells(ii + jj, lLastCol).Interior.ColorIndex = 36
                Cells(ii, lLastCol) = Cells(ii, lLastCol) + Cells(ii + jj, lLastCol)
                jj = jj + 1
            Wend

        End If
    Next ii
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 09.12.2009, 12:34   #5
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

БОЛЬШОЕ спасибо!
Артур Иваныч вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
цикл по for () и while() ciaonataha Общие вопросы C/C++ 6 25.06.2009 00:58
Цикл... Лёка PHP 5 03.02.2008 21:38
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34