powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в цикле
52 сообщений из 52, показаны все 3 страниц
Помогите найти ошибку в цикле
    #36311798
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SumPer1 = 0
SumNed1 = 0
SumPer2 = 0
SumNed2 = 0
If bwbKontrol1 Then
For i = 25 To wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i, 6).Value
SumNed1 = SumNed1 + wbKontrol1.Worksheets.Item("Total").Cells(i, 5).Value
Next i
End If
If bwbKontrol2 Then
For v = 25 To wbKontrol2.Worksheets("Total").UsedRange.Rows.Count
SumPer2 = SumPer2 + wbKontrol2.Worksheets.Item("Total").Cells(v, 6).Value
SumNed2 = SumNed2 + wbKontrol2.Worksheets.Item("Total").Cells(v, 5).Value
Next v
End If
OPS.Worksheets.Item("Data input Wastes & Losses").Cells(30, 9 + (dDate - dFirstDate)).Value = SumPer1 + SumPer2
OPS.Worksheets.Item("Data input Wastes & Losses").Cells(31, 9 + (dDate - dFirstDate)).Value = SumNed1 + SumNed2


нули получаются, вместо значений из файла
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311828
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точно в Cells(n, 6/5).Value числа?
Ну и ещё UsedRange с первой ячейки начинается?
Советую в код понаставлять Dubug.Print, например
Код: plaintext
1.
2.
3.
4.
For i =  25  To wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
Debug.Print SumPer1
Debug.Print wbKontrol1.Worksheets.Item("Total").Cells(i,  6 ).Value
SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  6 ).Value
увидишь, где нули появляются, да и были ли вообще значения в цикле.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311830
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Debug, конечно...
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311849
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я по F8 смотрела, нет значений в цикле, хотя фактически в файлах значения есть. причем цикл он не проходит даже, в чем причина понять не могу. то есть каждая строка по одному разу и спускается вниз по коду. поиск начинается со строки 25 до UsedRange.Rows.Count
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311886
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
b wbKontrol1 -?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311977
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это флаг, если файл существует
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311996
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну флаг-то флаг, а б в начале не лишнее?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36311999
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что вначале? обнуление?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312008
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bwbKontrol1 <> wbKontrol1
bwbKontrol2 <> wbKontrol2
это правильно или описка?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312029
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вот это значение (dDate - dFirstDate) проверьте, что получается.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312032
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
откуда эти строки? bwbKontrol 1,2 это флаги, а wbKontrol 1,2 это сами файлы, тут все правильно.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312035
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя если не проходит цикл, значит wbKontrol1.Worksheets("Total").UsedRange.Rows.Count меньше 26 :)
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312036
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это тоже работает, косяк где-то в самом цикле
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312040
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Хотя если не проходит цикл, значит wbKontrol1.Worksheets("Total").UsedRange.Rows.Count меньше 26 :)


первый раз он цикл проходит, но дальше благополучно из него выходит, а значение может быть в следующей строке. то есть получается, что по 25 строке он проходит в обоих файлах, там оказываются нули и в итоге он мне в отчет эти нули и заночит, хотя реально значения должны суммироваться по всем заполненным строкам по 5 и 6 столбцу
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312050
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Как для wbKontrol1(2) присвоено значение? Как объявлено? Есть ли On Error Resume Next в коде ?
Попробуйте в самой книге wbKontrol1(2) получить значение для
Worksheets.("Total").UsedRange.Rows.Count
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312051
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так сколько wbKontrol1.Worksheets("Total").UsedRange.Rows.Count ?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312077
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mКак для wbKontrol1(2) присвоено значение? Как объявлено? Есть ли On Error Resume Next в коде ?
Попробуйте в самой книге wbKontrol1(2) получить значение для
Worksheets.("Total").UsedRange.Rows.Count

Есть и обработка ошибок и с wbKontrol1(2) все в порядке, так как файлы открываются. почему-то не реагирует на Next i и Next j, поэтому и выводит нули. почему может не реагировать? может быть у меня сами циклы логически не правильно описаны?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312079
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Так сколько wbKontrol1.Worksheets("Total").UsedRange.Rows.Count ?

а как посмотреть?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312115
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Debug.Print wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
или
x = wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
Msgbox x
или
Msgbox wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312197
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Выложите пример, мы так будем переписываться до НГ
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312285
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oksana SlonevskayaHugo121Так сколько wbKontrol1.Worksheets("Total").UsedRange.Rows.Count ?

а как посмотреть?

первый проход как раз 25, второй раз цикл не проходит
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312292
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маловато будет :)
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312303
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так и должно быть 25, начинаем ведь с 25 строки, при втором проходе цикла была бы 26 и так далее, пока есть значения....
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312338
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wbKontrol1.Worksheets("Total").UsedRange.Rows.Count - это предел, к чему стремится i.
For i = 25 to 250
MsgBox i
Next
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312363
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121wbKontrol1.Worksheets("Total").UsedRange.Rows.Count - это предел, к чему стремится i.
For i = 25 to 250
MsgBox i
Next


при всей отработке фойла выдавало сообщения, что i=25, опять же по тому, что цикл проходит только один раз. я не пойму - почему???? может быть next i,next v не в том месте стоит?
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312382
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну так если wbKontrol1.Worksheets("Total").UsedRange.Rows.Count = 25 , иначе и не будет.
Я подозреваю, что вы путаете UsedRange.Rows.Count иномер последней заполненной строки, это в общем случае разные числа.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312417
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Ну так если wbKontrol1.Worksheets("Total").UsedRange.Rows.Count = 25 , иначе и не будет.
Я подозреваю, что вы путаете UsedRange.Rows.Count иномер последней заполненной строки, это в общем случае разные числа.


ничего не пойму уже. ведь UsedRange.Rows.Count - это количество заполненных строк. а их у меня как минимум 4, в остальных разделах с другими файлами это работает, почему тут не хочет не понимаю.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312430
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это количество заполненных строк - да, но если наверху есть незаполненная область, то это количество будет меньше, чем номер последней строки.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312431
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, возможно Вы хотели цикл на убывание? Тогда For 25 to 10 Step -1
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312461
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, никаких циклов на убывание. цикл начинается с 25 строки и идет вниз по заполненным строкам....
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312692
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
цикл начинается с 25 строки и идет вниз по заполненным строкам
Ну тогда может быть
Код: plaintext
1.
For i =  25  To  25  + wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36312704
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или я бы сделал
Код: plaintext
1.
For i =  0  To wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
а ниже
Код: plaintext
1.
SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i+ 25 ,  6 ).Value
или вообще в начале кода задал переменную sdvig = 25, далее i+sdvig - если сдвиг всюду одинаковый, легче поменять позже, если шаблон изменится.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314168
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в общем c UsedRange.Rows.Count был глюк. теперь количество заполненных строк правильно определяется, но цикл все равно не проходит
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314200
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
2 Oksana Slonevskaya ,
Мне кажется Вы уже создавали топики на этом форуме, и Вам также как и сейчас пытались помочь. Но у меня впечатление, что Вы не хотите помочь самой себе. У Вас проблема не типа "напишите формулу", а не работает цикл (не факт, конечно). Топик становится утомителен, по одной фразе переписыватся можно годами. Я предложил сбросить пример, Вы проигнорировали (если есть секретные данные, замените их)... Ну что ж, может у Hugo121 хватит терпение разобратся с Вашей проблемой...
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314218
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m 2 Oksana Slonevskaya ,
Мне кажется Вы уже создавали топики на этом форуме, и Вам также как и сейчас пытались помочь. Но у меня впечатление, что Вы не хотите помочь самой себе. У Вас проблема не типа "напишите формулу", а не работает цикл (не факт, конечно). Топик становится утомителен, по одной фразе переписыватся можно годами. Я предложил сбросить пример, Вы проигнорировали (если есть секретные данные, замените их)... Ну что ж, может у Hugo121 хватит терпение разобратся с Вашей проблемой...

мне код выслать или файл? что? размер файла 1,5 метра, при всем желании он сюда не влезет и даже если влезет, работать он не будет, данные берутся из сети. на почту могу выслать сам файл и пару еще, по которым не работает как раз цикл
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314309
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
ТСи даже если влезет, работать он не будет, данные берутся из сети
Ну так придумайте что нибудь :), кому надо, мне или Вам?
ТСпочту могу выслать сам файл и пару еще, по которым не работает как раз цикл
Выложите на какой-нибудь бесплатный файлообменник, и дайте на него ссылку на форуме.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314316
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oksana Slonevskayaв общем c UsedRange.Rows.Count был глюк. теперь количество заполненных строк правильно определяется, но цикл все равно не проходит
Как конструкция
Код: plaintext
1.
2.
3.
4.
For i =  25  To wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  6 ).Value
SumNed1 = SumNed1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  5 ).Value
Next i
где wbKontrol1.Worksheets("Total").UsedRange.Rows.Count > 25 (надеюсь, выяснили)
может не работать?
Понимаю, может выкинуть ошибку, если не найдены wbKontrol1 и "Total" в цикле, но сам цикл должен проходить.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314504
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://slil.ru/28214916
надо в коде файла цикл.xls поправить пути в файлам wbKontrol1 и wbKontrol2,смотря где лежать будет. цикл не работает по файлам контроль налива 1, 2 на листе 4
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314644
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первое, что я проверил:
запустил в
Контроль налива масла №1 October 25.xls
и
Контроль налива масла №2 October 25.xls

Код: plaintext
1.
2.
Sub tt()
Debug.Print Worksheets("Total").UsedRange.Rows.Count
End Sub
результат = 7 в обоих файлах.
Т.е. цикл
Код: plaintext
For i =  25  To wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
работать не будет точно.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314692
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну как сделать так, чтобы работало? ведь ниже используются такие же циклы в файле цикл.xls и все работает. почему этот не определяет количество заполненных строк? то есть получается, что строка с usedrange.rows.count не работает
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314701
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге, такой код помог разобраться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub tt()
Set wbKontrol1 = ThisWorkbook
Debug.Print wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
wbKontrol1.Worksheets("Total").UsedRange.Select

                 For i =  26  To  25  -  2  + wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
                     SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  6 ).Value
                     SumNed1 = SumNed1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  5 ).Value
                 Next i

End Sub
У вас там ещё и поймать начало значений надо (-2)...
Т.е. вероятно правильная строка:
Код: plaintext
 For i =  26  To  25  -  2  + wbKontrol1.Worksheets("Total").UsedRange.Rows.Count
Некрасиво, понимаю, сокращать Вам...
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314709
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oksana Slonevskayaну как сделать так, чтобы работало? ведь ниже используются такие же циклы в файле цикл.xls и все работает. почему этот не определяет количество заполненных строк? то есть получается, что строка с usedrange.rows.count не работает
Наверное в Electrical Energy.xls UsedRange начинается с первой строки.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314720
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибка только в строке For i = 25 To wbKontrol1.Worksheets("Total").UsedRange.Rows.Count? а остальной цикл верный? значения из файлов контроль налива 1 и 2 по переливу и недоливу соответственно должны суммироваться между собой и заноситься в файл цикл....
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314726
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Oksana Slonevskayaну как сделать так, чтобы работало? ведь ниже используются такие же циклы в файле цикл.xls и все работает. почему этот не определяет количество заполненных строк? то есть получается, что строка с usedrange.rows.count не работает
Наверное в Electrical Energy.xls UsedRange начинается с первой строки.

да. но я думала это не имеет значения, в нашем случае ведь расчет идут от 25 строки по конец.... видимо нет
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314735
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, ну 100% гарантии не дам (не вникал до конца кода), но цикл с этими цифрами
For i = 26 To 23 +
работает.
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314746
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Точно в Cells(n, 6/5).Value числа?
Ну и ещё UsedRange с первой ячейки начинается?

Почему не читаете ответы? Это было сказано через 15 минут после вопроса...
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314761
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Hugo121Точно в Cells(n, 6/5).Value числа?
Ну и ещё UsedRange с первой ячейки начинается?

Почему не читаете ответы? Это было сказано через 15 минут после вопроса...

не поняла, к чему этот пост.... все работает, толлько так и не поняла, почему именно так надо писать ()
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314776
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что если UsedRange начинается не с первой ячейки, то номер ряда листа не будет совпадать с номером ряда в UsedRange, что и есть причиной, что Cells(i, 6).Value было не то, что надо. То, что начинать i надо с начало листа + 25 Вы уловили, но и предел цикла с UsedRange.Rows.Count надо начинать с +25. Да и к тому же сама область UsedRange включает не только цифры, но и пустую строку и заглавие, что Вам/Нам не нужно.
Похоже, только запутал...
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36314981
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вообще (для сторонних наблюдателей ), в данном случае да и вообще, лучше сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test()

Set wbKontrol1 = ThisWorkbook

xxx = wbKontrol1.Worksheets("Total").UsedRange.Row
yyy = wbKontrol1.Worksheets("Total").UsedRange.Rows.Count

                 For i = xxx +  2  To xxx + yyy -  1   ' 2 строки нам не нужно
                    'wbKontrol1.Worksheets.Item("Total").Cells(i, 5).Select ' для теста раскомментировать
                     SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  6 ).Value
                     SumNed1 = SumNed1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  5 ).Value
                 Next i

End Sub
Так мы не будем зависеть от положения блока данных на листе по высоте.
Но зависим от формы этой таблицы, да и мало ли ещё что на листе появится...
Тогда надо искать ячейку "Общий недолив, т" (через find) и брать в цикле ячейки ниже до пока не цифры, и правее соответственно. Как-то так.
Если не искать конец нужных данных (просто -2 ненужных ряда):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub findedoliv()
Set wbKontrol1 = ThisWorkbook

iValue = "Общий недолив, т"
Set iFinds = wbKontrol1.Worksheets("Total").UsedRange.Find(iValue, LookIn:=xlValues)

xxx = iFinds.Row +  1 
yyy = wbKontrol1.Worksheets("Total").UsedRange.Rows.Count

                 For i = xxx To xxx + yyy -  1  -  2   ' 2 строки нам не нужно
                    wbKontrol1.Worksheets.Item("Total").Cells(i,  5 ).Select ' для теста раскомментировать
                     SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  6 ).Value
                     SumNed1 = SumNed1 + wbKontrol1.Worksheets.Item("Total").Cells(i,  5 ).Value
                 Next i

End Sub

...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36315000
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше так, столбцы тоже могут не быть 5/6:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub findedoliv()
Set wbKontrol1 = ThisWorkbook

iValue = "Общий недолив, т"
Set iFinds = wbKontrol1.Worksheets("Total").UsedRange.Find(iValue, LookIn:=xlValues)

xxx = iFinds.Row
xxc = iFinds.Column
yyy = wbKontrol1.Worksheets("Total").UsedRange.Rows.Count

    For i = xxx +  1  To xxx + yyy -  2   ' 2 строки нам не нужно
        'wbKontrol1.Worksheets.Item("Total").Cells(i, xxc).Select ' для теста раскомментировать
        SumPer1 = SumPer1 + wbKontrol1.Worksheets.Item("Total").Cells(i, xxc +  1 ).Value
        SumNed1 = SumNed1 + wbKontrol1.Worksheets.Item("Total").Cells(i, xxc).Value
    Next i

End Sub
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36315050
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо огромное, остановилась на верхнем варианте с добавлением 25+ к usedrange.rows.count, все работает ))))
...
Рейтинг: 0 / 0
Помогите найти ошибку в цикле
    #36315133
2 Oksana Slonevskaya ,
видите, насколько быстрее получилось, когда выложили пример.
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в цикле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]