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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 13:39   #1
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию как организовать цикл?

Надо проверить в LIST1 каждый час с предедущий, из большого вычесть меншего (допустим столбец С (С14-С15=700-695=5)), результат писать в соответствующий ячейка в лист2 (C4). Потом В лист2 вычыслить столбцы F, J, M. Следующий раз С16-С15=720-695=25, это число заного писать в лист2 (C4) . Вычыслить столбцы F и J для этого число, потом столбец M
тоже вычыслить, но добавить на предудущий M. Т.e., только M все время прибавляются. И т.д.

И для все столбцы надо будеть это делать.

Т.e., не могу организовать этот цикл. Помогите пожалуйста мне в этом деле.

Помогите пожалуйста, Я понимаю что конечно не очень ясно обяснил, но думаю что из прикрeпленный файла сут задачи можно понять.
Вложения
Тип файла: rar ss2.rar (34.8 Кб, 13 просмотров)

Последний раз редактировалось EducatedFool; 01.06.2009 в 17:39.
Aqil_f вне форума Ответить с цитированием
Старый 01.06.2009, 17:39   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
думаю что из прикрeпленный файла сут задачи можно понять
Зря Вы так думаете

Попробуйте такой вариант:

Код:
Sub test()
    Dim li1 As Worksheet: Set li1 = ThisWorkbook.Worksheets("LIST1")
    Dim li2 As Worksheet: Set li2 = ThisWorkbook.Worksheets("LIST2")
    Dim ColName As Range, ro As Range

    On Error Resume Next: Application.ScreenUpdating = False
    For i = 3 To 50
        Set ColName = li1.Cells(11, i)    ' читаем название столбца (например, 310)
        Set ro = Nothing    'Debug.Print ColName, "ColName"
        Set ro = li2.Range("b:b").Find(ColName.Value)     ' пытаемся найти аналогичную строку на листе2
        If Not ro Is Nothing Then    ' если нашли
            ro.EntireRow.Cells(3) = Abs(ColName.Offset(1) - ColName.Offset(2))    ' столбец С
            ro.EntireRow.Cells(6) = Abs(ColName.Offset(3) - ColName.Offset(4))    ' столбец F
            ro.EntireRow.Cells(7) = Abs(ColName.Offset(5) - ColName.Offset(6))    ' столбец G
        End If
    Next i
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 02.06.2009, 07:41   #3
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Попробую обяснить:

1) В List1 столбец С (310)
IF C14>=C15
AD=С14-С15 (=700-695=5)
ELSE
AD=С15-С14
ENDIF

2) В List2 столбец С

C4=AD

3) В List2 столбец D от руки пишутся.
столбец F в зависимости от D вычысляется.
столбец J и G тоже вычысляется.

4) В следующим цикле повторяется 1),

IF C15>=C16
AD=С15-С16
ELSE
AD=С16-С15
ENDIF

5) повторяется 2),
В List2 столбец С
C4=AD


6) повторяется 3),
В List2 столбец D от руки пишутся.
столбец F в зависимости от D вычысляется.
столбец J тоже вычысляется.
ПОТОМ СТОЛБЕЦ G вычысляется, НО ПРИБАВЛЯЮТСЯ НА ПРЕДУДУЩИЙ G. Т.Е. В G НАКАПЛИВАЕТСЯ СУММА.


Так продалжается для всех столбцы.
Aqil_f вне форума Ответить с цитированием
Старый 03.06.2009, 10:13   #4
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Вот сейчас у меня есть такой код (В LIST2 кнопка "Расчет"),
Но, незнаю как этот цикл продолжать в LIST1 не только для С (310), и все последующих столбцы (D (311), E (312),...) , и в LIST2 столбец G5, G6,...
Помогите пожалуйста.
Вложения
Тип файла: rar ss3.rar (37.0 Кб, 13 просмотров)
Aqil_f вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу организовать цикл удаления файлов dolphin705 Общие вопросы Delphi 5 08.05.2009 13:39
Помогите, пожалуйста, организовать цикл Axel1981 Помощь студентам 2 17.10.2008 09:22
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34