Добрый день решил вставить обработку ошибок в функцию, вычисляющую дату и время окончания работы при заданном начале и длительности, исключать выходные, праздники, перерывы и нерабочее время. Выходные дни и и нерабочее время отрабатывает, праздники и перерывы нет. Причём, в тестовой функции (модуль2) праздники отрабатывает. Проверял: из цикла For выходит досрочно. В чём проблема? Спасибо!
Добрый день решил вставить обработку ошибок в функцию, вычисляющую дату и время окончания работы при заданном начале и длительности, исключать выходные, праздники, перерывы и нерабочее время. Выходные дни и и нерабочее время отрабатывает, праздники и перерывы нет. Причём, в тестовой функции (модуль2) праздники отрабатывает. Проверял: из цикла For выходит досрочно. В чём проблема? Спасибо!dude
Перед блоком основных вычислений вставил обработку ошибок: не вычислять функцию, если дата и время не рабочие. блок ведёт себя странно. просто If (выходные дни, нерабочее время) отрабатывает, а в теле цикла (перебор праздников, дневных перерывов) нет
Перед блоком основных вычислений вставил обработку ошибок: не вычислять функцию, если дата и время не рабочие. блок ведёт себя странно. просто If (выходные дни, нерабочее время) отрабатывает, а в теле цикла (перебор праздников, дневных перерывов) нетdude
[offtop] krosav4ig, Я сам был озадачен, но так как проверить не могу, а все доки MS, что нашел, на 2010 и выше, то сижу репу чешу, пользовал ли я INT На XP и более младших :-) Спасибо успкоил старика, думал в маразм впадаю.[/offtop]
[offtop] krosav4ig, Я сам был озадачен, но так как проверить не могу, а все доки MS, что нашел, на 2010 и выше, то сижу репу чешу, пользовал ли я INT На XP и более младших :-) Спасибо успкоил старика, думал в маразм впадаю.[/offtop]bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Что за чушь? Int - это вообще одна из стандартных изначально присутствовавших функций Basic, а даже не VBA. К сожалению, с работы скачать файл с макросами, чтобы разобраться "где собака порылась" не могу. Но скорее всего - просто некорректное использование. Вот выдержка из русского справочника: Функция Int Int(Number) Функция Int отбрасывает дробную часть числа и возвращает целое значение. Функция схожа с функцией Fix. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix ближайшее отрицательное целое число, большее либо равное указанному. Например, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8,4 в -8 Возвращаемое значение Функция возвращает значение типа, совпадающего с типом аргумента, которое содержит целую часть числа Параметры Number Обязательный аргумент Number может представлять любое допустимое числовое выражение или число типа Double. Если аргумент имеет значение Null, то возвращается также Null Примечание Если значение аргумента не попадает в диапазон допустимых значений Double, то генерируется ошибка стадии выполнения Overflow Если аргумент имеет тип данных String, то он должен представлять собой число, иначе генерируется ошибка стадии выполнения Type mismatch
Что за чушь? Int - это вообще одна из стандартных изначально присутствовавших функций Basic, а даже не VBA. К сожалению, с работы скачать файл с макросами, чтобы разобраться "где собака порылась" не могу. Но скорее всего - просто некорректное использование. Вот выдержка из русского справочника: Функция Int Int(Number) Функция Int отбрасывает дробную часть числа и возвращает целое значение. Функция схожа с функцией Fix. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix ближайшее отрицательное целое число, большее либо равное указанному. Например, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8,4 в -8 Возвращаемое значение Функция возвращает значение типа, совпадающего с типом аргумента, которое содержит целую часть числа Параметры Number Обязательный аргумент Number может представлять любое допустимое числовое выражение или число типа Double. Если аргумент имеет значение Null, то возвращается также Null Примечание Если значение аргумента не попадает в диапазон допустимых значений Double, то генерируется ошибка стадии выполнения Overflow Если аргумент имеет тип данных String, то он должен представлять собой число, иначе генерируется ошибка стадии выполнения Type mismatchAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Понедельник, 27.02.2017, 08:33
Из дома скачал-таки файл ради интереса. Да... Написано, конечно, со знанием дела - с обработкой процедурами вычисляемых формулами листа динамических диапазонов. Но написано ДЛЯ СЕБЯ, знающего, что и как вычисляется и куда заносится. Если спрашиваете совета, так хоть бы в примере на листе заголовки столбцов добавили, чтобы не гадать что и куда заносится руками, а что вычисляется макросом. Но по сути вопроса bmv98rus, конечно, прав:
Exit For дает команду выхода из цикла, и Exit Function не исполняется. Оставьте только Exit Function
Из дома скачал-таки файл ради интереса. Да... Написано, конечно, со знанием дела - с обработкой процедурами вычисляемых формулами листа динамических диапазонов. Но написано ДЛЯ СЕБЯ, знающего, что и как вычисляется и куда заносится. Если спрашиваете совета, так хоть бы в примере на листе заголовки столбцов добавили, чтобы не гадать что и куда заносится руками, а что вычисляется макросом. Но по сути вопроса bmv98rus, конечно, прав:
ответ на четко поставленный вопрос :-). про INT то я так спросил, глаз зацепился пока смотрел бегло что там за обраьотка ошибок и "Читал пейджер, долго думал " ....[/offtop]
[offtop]Алексей,
ответ на четко поставленный вопрос :-). про INT то я так спросил, глаз зацепился пока смотрел бегло что там за обраьотка ошибок и "Читал пейджер, долго думал " ....[/offtop]bmv98rus
Замечательный Временно просто медведь , процентов на 20.
В вашем случае который меня и удивил, использование конструкции вида Abs(Fix(-(1 * (0.5 - 0.4 - 0.1)))) не имеет смысла, но она работает. это я не отрицаю.[/offtop]
В вашем случае который меня и удивил, использование конструкции вида Abs(Fix(-(1 * (0.5 - 0.4 - 0.1)))) не имеет смысла, но она работает. это я не отрицаю.[/offtop]bmv98rus
Замечательный Временно просто медведь , процентов на 20.
и как раз от таких действий и надо избавляться. давайте на этом закончим ибо меня успокоили, что я не в маразме и INT на своем месте и в 2003, вы получили ответ на первый вопрос. Успехов.[/offtop]
и как раз от таких действий и надо избавляться. давайте на этом закончим ибо меня успокоили, что я не в маразме и INT на своем месте и в 2003, вы получили ответ на первый вопрос. Успехов.[/offtop]bmv98rus
Замечательный Временно просто медведь , процентов на 20.