У меня есть простая таблица: Excel VBA для хранения значения/преобразование проблема
Общее% используют следующую формулу:
= СУММЕЛИ ($ Z $ 23: $ AL $ 23; "%" ; Z24: AL24)
Где я в основном суммирую значение, если заголовок столбца равен «%». Тогда у меня есть процедура VBA, который просто петли через эти% Суммарные данные и проверяет, являются ли они равны 1 или нет, такие как следующие:
If Cells(iRowLoop, 39).Value <> 1 Then ' show user an error message and stop procedure
Проблема заключается в том, что самый первый 100% клеток (со значением 18 245) утверждает, что это значение не равно 1. Я попытался следующие вещи:
- умножить значение на 10 000 000, но нет ничего другого там, просто в «1»
- Храните значение как двойное, чтобы увидеть, если это значение не похоже на «100.00000001», но оно вернуло значение «1 ' еще раз.
Я также проверил, содержат ли зеленые проценты целые числа (они являются ручным пользовательским вводом), и поэтому нет способа, каким образом результат может быть чем-то другим, кроме простого 100% ... но еще лучше говорит (процедура VBA), что первое число не 100%.
Как решить эту проблему? Любая помощь будет оценена по достоинству.
так просто, не думал об этом! Несмотря на то, что это не устраняет всю проблему, но это может быть какая-то ошибка excel. благодаря! –
@RobertJ. ** Не ошибка Excel. ** Это просто, что Excel ОЧЕНЬ суетливый о значениях с плавающей запятой ........ альтернативой было бы применить какое-то ** округление **, чтобы избежать значений, которые очень близки к 100%, но не точно 100%. –