powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хелп непонятный глюк VBA!!!
7 сообщений из 7, страница 1 из 1
Хелп непонятный глюк VBA!!!
    #34199515
NikoS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите
Пишу макрос для Екселя

Deb = WorksheetFunction.SumIf(Range(Cells(1, 2), Cells(1000, 2)), "=" & Npd, Range(Cells(1, 7), Cells(1000, 7)))
Kred = WorksheetFunction.SumIf(Range(Cells(1, 2), Cells(1000, 2)), "=" & Npd, Range(Cells(1, 8), Cells(1000, 8)))
If (d - Kred) <> 0 Or (k - Deb) <> 0 Then Metka "Неправильно"

в отладке
d = 12214,88
Kred = 12214,88
а (d - Kred) = -1,81898940354586E-12 тоесть условие не выполняется
(d <> Kred) тоже самое

Как вылечить подскажите, а то кончилась фантазия.
...
Рейтинг: 0 / 0
Хелп непонятный глюк VBA!!!
    #34199611
NikoS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NikoSПомогите
Пишу макрос для Екселя

Deb = WorksheetFunction.SumIf(Range(Cells(1, 2), Cells(1000, 2)), "=" & Npd, Range(Cells(1, 7), Cells(1000, 7)))
Kred = WorksheetFunction.SumIf(Range(Cells(1, 2), Cells(1000, 2)), "=" & Npd, Range(Cells(1, 8), Cells(1000, 8)))
If (d - Kred) <> 0 Or (k - Deb) <> 0 Then Metka "Неправильно"

в отладке
d = 12214,88
Kred = 12214,88
а (d - Kred) = -1,81898940354586E-12 тоесть условие не выполняется
(d <> Kred) тоже самое

Как вылечить подскажите, а то кончилась фантазия.

Пожалуйста помогите, надо быстро и вчера
...
Рейтинг: 0 / 0
Хелп непонятный глюк VBA!!!
    #34200220
NikoS NikoSПомогите
Пишу макрос для Екселя

Deb = WorksheetFunction.SumIf(Range(Cells(1, 2), Cells(1000, 2)), "=" & Npd, Range(Cells(1, 7), Cells(1000, 7)))
Kred = WorksheetFunction.SumIf(Range(Cells(1, 2), Cells(1000, 2)), "=" & Npd, Range(Cells(1, 8), Cells(1000, 8)))
If (d - Kred) <> 0 Or (k - Deb) <> 0 Then Metka "Неправильно"

в отладке
d = 12214,88
Kred = 12214,88
а (d - Kred) = -1,81898940354586E-12 тоесть условие не выполняется
(d <> Kred) тоже самое

Как вылечить подскажите, а то кончилась фантазия.

Пожалуйста помогите, надо быстро и вчера
Это называется точность вычислений и округление результата...
Определите необходимую Вам точность (например, 0.001) и проверяйте
(функция abs() = вычисление модуля числа, результат всегда положительный):
If abs(d - Kred) > 0.001 Or abs(k - Deb) > 0.001 Then Metka "Неправильно"
...
Рейтинг: 0 / 0
Хелп непонятный глюк VBA!!!
    #34200487
NikoS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да эта функция дает положительный результат, но мне нужно чтобы Metka "Не правильно" выполнилась если (d <> Kred) или (k <> Deb).
В моем случае два одинаковых числа d=12214,88 и Kred=12214,88 считаются не равными, и получение разницы двух чисел не равной 0 - один из вариант проверки.

Все значения скопированы с дебагера!
...
Рейтинг: 0 / 0
Хелп непонятный глюк VBA!!!
    #34201538
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем не устраивает вариант Станислава С?
Поймите, что нельзя сравнивать два действительных числа, даже если дебаггер показывает их как равные.

...
Рейтинг: 0 / 0
Хелп непонятный глюк VBA!!!
    #34201907
NikoS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nikeЧем не устраивает вариант Станислава С?
Поймите, что нельзя сравнивать два действительных числа, даже если дебаггер показывает их как равные.



А как на счет

If StrComp(Kred, OdDeb, 0) <> 0 Or StrComp(OdKred, Deb, 0) <> 0 Then Metka
бинарное сравнение переменных

Так можно делать или будет давать збой?
Кажись работает нормально
...
Рейтинг: 0 / 0
Хелп непонятный глюк VBA!!!
    #34202043
NikoS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем за поддержку, пока остановлюсь на этом варианте
If StrComp(Kred, OdDeb, 0) <> 0 Or StrComp(OdKred, Deb, 0) <> 0 Then Metka
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хелп непонятный глюк VBA!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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