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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 16:22   #1
vik85
Пользователь
 
Регистрация: 19.12.2009
Сообщений: 15
По умолчанию Worksheet_Calculate

Здравствуйте. Помогите плз.
У меня программка собирает статистические данные из нета в эксель.
на листе "таймер" происходит деление на часы, минуты и секунды
на листе "счетчик" есть некий счетчик который считает кол-во поступивших данных за минуту. Мне нужно чтоб по окончании минуты счетчик сбрасывался.
я сделал так:
создал еще один лист "Сброс счетчика" и в нем сделал ссылку на минуты и на листе написал так
Private Sub sheet_Calculate()
WorksheetSheets("Запрос данных").Cells(3, 8) = "2"
End Sub
на лист "запрос данных" поступают данные и он же содержет счетчик.
У меня же происходит то что он почему-то смотрит на лист "таймер",по крайней мере я так думаю, потому что он сбрасывает счетчик каждую секунду.
подскажите что не так
vik85 вне форума Ответить с цитированием
Старый 12.06.2010, 17:56   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

По этому описанию довольно сложно понять, но если у вас в счетчике идет проверка времени, то можно проверять, равно ли число секунд 00, и сбрасывать счетчик в случае "да"
motorway вне форума Ответить с цитированием
Старый 12.06.2010, 19:29   #3
vik85
Пользователь
 
Регистрация: 19.12.2009
Сообщений: 15
По умолчанию

Я делал так чтоб отталкиваться от секунд, но если данных за минуту собирается много + большое кол-во формул на листе подвешивают эксель, и момент когда секунды становятся 00 бывает проходит незамеченным, от сюда счетчик не сбросился - данных стало еще больше- и они же перетирают нужные формулы
vik85 вне форума Ответить с цитированием
Старый 12.06.2010, 19:44   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

А обновление экрана и автопересчет формул отключены у вас?
motorway вне форума Ответить с цитированием
Старый 13.06.2010, 09:56   #5
vik85
Пользователь
 
Регистрация: 19.12.2009
Сообщений: 15
По умолчанию

Настройки стоят по умолчанию за исключением некоторых. Что даст отключение авто обновления экрана и авто пересчета формул? Если это так важно, плз подскажите как сделать (офис 2007)
vik85 вне форума Ответить с цитированием
Старый 13.06.2010, 15:31   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

В случае большого кол-ва ячеек, значения которых меняются, отключение этих функций значительно сокращает время работы макроса.
В начале его вставьте
Код:
Application.EnableEvents=False
Application.ScreenUpdating=False
Application.Calculation=xlCalculationManual
В конце
Код:
Application.EnableEvents=True
Application.ScreenUpdating=True
Application.Calculation=xlCalculationAutomatic
motorway вне форума Ответить с цитированием
Старый 13.06.2010, 17:52   #7
vik85
Пользователь
 
Регистрация: 19.12.2009
Сообщений: 15
По умолчанию

спасибо, попробую
vik85 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Worksheet_Calculate() vik85 Microsoft Office Excel 4 30.06.2013 01:16
Вопрос по Worksheet_Calculate serafim09 Microsoft Office Excel 2 09.09.2009 10:38