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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2009, 00:02   #31
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Ловите оптимизированный код. Оставлена одна переменная для числа интервалов ( l ), цикл тоже один теперь. Временные ячейки не используются. Можете проверить на своих данных, насколько быстрее стало и сообщите.
Странно, у меня код на странице не работает (код немного подправил под свои данные). Выложу временно свой файл. Здесь строка B - время. Из столбца High выбираются значения. Выгрузка значений начинается с ячейки H6.
http://depositfiles.com/files/aulob5ojv
Tidus вне форума Ответить с цитированием
Старый 10.09.2009, 00:14   #32
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Сорри, но я очень плохо отношусь к сайтам типа depositfiles.com, там обычно можно подцепить вирус. Может, вы мне пришлете его на мэйл? sherlock2009 [sobaka] mail.ru
motorway вне форума Ответить с цитированием
Старый 10.09.2009, 00:21   #33
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Сорри, но я очень плохо отношусь к сайтам типа depositfiles.com, там обычно можно подцепить вирус. Может, вы мне пришлете его на мэйл? sherlock2009 [sobaka] mail.ru
Уже выслал, обратно можете на эту же почту выслать. Посмотрим, что получится.

Последний раз редактировалось Tidus; 10.09.2009 в 00:27.
Tidus вне форума Ответить с цитированием
Старый 10.09.2009, 00:41   #34
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Вы там много изменили не в том месте. По идее, должно быть так, если не напутал от усталости. Но проблема еще и в том может быть, что если для интервалов нужных нет значений 0:00 и 0:20, то вообще не срабатывает (если нужно, чтобы срабатывало в этом случае)


Код:
Sub Кнопка1_Щелчок()
Application.ScreenUpdating = False
l = 1
r = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1

For i = 6 To r

  If (Cells(i, 2).Text = "0:00") Then
    nach = i
        l = l + 1
          End If

  If (Cells(i, 2).Text = "0:20") Then
    konec = i
        
          



Range("H" & l + 5).Formula = "=MAX(D" & nach & ":D" & konec & ")"

         End If
Next i


Application.ScreenUpdating = True



End Sub

Последний раз редактировалось motorway; 10.09.2009 в 00:46.
motorway вне форума Ответить с цитированием
Старый 10.09.2009, 01:09   #35
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Вы там много изменили не в том месте. По идее, должно быть так, если не напутал от усталости. Но проблема еще и в том может быть, что если для интервалов нужных нет значений 0:00 и 0:20, то вообще не срабатывает (если нужно, чтобы срабатывало в этом случае)
Спасибо за попытку помочь. Проверил, теперь как-то что-то выгружает, но выявил такие проблемы:
1) выгружает не все данные (вероятная причина - видимо не находит значения 0:00 и 00:20, хотя 00:10 лежит в интервале);
2) выгружаемые данные раскиданы по столбцу, а не по порядку (причина - даже предположить не могу).
3) выделяет большой интервал (причина - если цикл находит ячейку с временем 00:00 то начинает искать время 00:20, но его не находит и пропускает все временные интервалы с одновременным выделением и поэтому выделение длится до тех пор, пока не найдётся 00:20)

Для примера, самая первая строчка (при условии поиска в интервале от 0:00 до 20:00) по времени равна равна 0:10 со значением 1,6042 - код пропускает эту строчку.... и так все строчки, странно.
Это можно поправить?

Последний раз редактировалось Tidus; 10.09.2009 в 01:56.
Tidus вне форума Ответить с цитированием
Старый 10.09.2009, 01:58   #36
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Ну да, код был рассчитан на то, что обязательно будут 0:00 и 0:20.
Отсюда и причины остальные.
Поправить можно, но у меня что-то уже сил не очень много. Думаю, в порядке изучения VBA Вы можете попробовать сами это сделать.
motorway вне форума Ответить с цитированием
Старый 10.09.2009, 02:11   #37
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Ну да, код был рассчитан на то, что обязательно будут 0:00 и 0:20.
Отсюда и причины остальные.
Поправить можно, но у меня что-то уже сил не очень много. Думаю, в порядке изучения VBA Вы можете попробовать сами это сделать.
Я не спешу, я подожду.Как будет время, отпишитесь пожалуйста.

Последний раз редактировалось Tidus; 10.09.2009 в 02:13.
Tidus вне форума Ответить с цитированием
Старый 10.09.2009, 02:12   #38
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я же сегодня уезжаю, так что придется ждать помощи другой. Сам код должен не сильно измениться, просто условия проверки будут другие
motorway вне форума Ответить с цитированием
Старый 10.09.2009, 02:17   #39
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Я же сегодня уезжаю, так что придется ждать помощи другой. Сам код должен не сильно измениться, просто условия проверки будут другие
Жаль конечно, уже почти пристроили код и тут такой провал, ну что же...может кто другой поможет доработать. Удачной поездки!И спасибо за помощь!
Tidus вне форума Ответить с цитированием
Старый 10.09.2009, 06:56   #40
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. В нем предложенный мной макрос с подробными комментариями.
Вложения
Тип файла: rar test4_comments.rar (12.5 Кб, 22 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
5 максимальных значений в сводной таблице в новом Excel Катик7 Microsoft Office Excel 2 03.09.2009 17:26
Случайный выбор значений из списка Stoodentka Microsoft Office Excel 4 14.07.2009 07:56
Выбор значений по отдельной группе michi SQL, базы данных 2 15.10.2008 22:35
Запись файлов в *.тхт с учетом повторяющихся значений Arteom Общие вопросы Delphi 3 03.04.2008 17:26
выбор значений в цикле Melok Паскаль, Turbo Pascal, PascalABC.NET 3 15.12.2007 22:56