Один отличается от одного - PullRequest
0 голосов
/ 29 мая 2018

У меня проблема с кодом, и мне было интересно, если вы, ребята, поможете мне найти логическое объяснение этому.

У меня есть следующий код:

If rngTotal.Value2 <> 1 And Not IsError(rngHours) Then
    'code here
End if

rngTotal.Значение2 равно 1, и все же VBA говорит, что rngTotal.Value2 <> 1 имеет значение true ... что не имеет смысла.Я пытался записать его как cDBL (rngTotal.Value2) <> 1, но получаю тот же результат.

Эта часть макроса должна запускаться только при rngTotal <> 1, и все же она срабатывает при = 1также.

У кого-нибудь есть идеи по этому поводу?

1 Ответ

0 голосов
/ 29 мая 2018

Я исправил проблему, изменив значение

rngTotal.Value2 <> 1  

на

rngTotal.Value2 <> "1" 

rngTotal, содержащее сумму процентов, и общая сумма должна составлять 1 (100%).VBA по какой-то причине распознавала сравнение со значением 1 без двойных кавычек как True.

Для людей, которые спрашивали, это не было десятичной проблемой, в debug.print оба значения приводили к 1. И в любом случае я тестировал с round и имел тот же результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...