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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2014, 15:27   #1
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию оператор времени

Добрый день! давно уж ни чего не делал в vba, в связи с этим возникают простейшие проблемы,написал конечно как курица - но в итоге работает, но слегка не так как хотел, подскажите кого не затруднит в чем ошибка:

задача:Есть лимит времени(например 21:00:00) в таблицу вводятся значения в формате времени, нужно вычислить превышение лимита времени.
т.е если в ячейку 1 вводим 22:15:00, то во вторую ячейку должен рассчитаться превышенный лимит - 01:15:00.

PS: цикл должен работать пока строка заполнена.

Код:
Sub Кнопка1_Щелчок()
Dim kol_vo_str As Integer 
Dim i As Integer
Dim posle_v As Date




posle_v = #09:00:00 PM#


' не смог организовать простейший цикл while и по этому тупо посчитал сколько не пустых строк в таблице:)
kol_vo_str = WorksheetFunction.CountA(Range("b8:b111"))



For i = 1 To kol_vo_str
 

' проблема в том если я за место Cells(i + 7, 5) = Cells(i + 7, 4) - Range("J1")(где написал 21:00)
' ставлю Cells(i + 7, 5) = Cells(i + 7, 4) - posle_v то процедура не работает(((

 If Cells(i + 7, 4) > Range("J1") Then
Cells(i + 7, 5) = Cells(i + 7, 4) - Range("J1")
Else: Cells(i + 7, 5) = "------------"

  End If
 Next


end sub
приведите плиз в нормальный вид))

Последний раз редактировалось DEsh; 18.04.2014 в 15:37.
DEsh вне форума Ответить с цитированием
Старый 18.04.2014, 15:48   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

posle_v = 7/8
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.04.2014, 15:56   #3
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию

оооо, точно, спасибо большое
DEsh вне форума Ответить с цитированием
Старый 18.04.2014, 16:11   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

А какая разница? Можно поставить точку останова и проверить
Код:
?posle_v=7/8
True
Другой вопрос - почему бы не сделать формулой
Код:
=ЕСЛИ(D8="";"";ЕСЛИ(D8>$J$1;D8-$J$1;"------------"))
(см. файл).
Вложения
Тип файла: rar Книга3.rar (5.9 Кб, 8 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 18.04.2014, 19:02   #5
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
А какая разница? Можно поставить точку останова и проверить
Код:
?posle_v=7/8
True
Другой вопрос - почему бы не сделать формулой
Код:
=ЕСЛИ(D8="";"";ЕСЛИ(D8>$J$1;D8-$J$1;"------------"))
(см. файл).
да делал сначала формулами, но там еще куча всяких мелочей, решил в vba сделать))) да и вспомнить слегка, скоро будет еще вопрос скорее всего(((
DEsh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 12:50
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24