У меня есть следующие строки в Excel VBA:Excel VBA перелива Ошибка
ActiveCell.Offset(r, 1).Value = IIf(rs2.Fields("SalesRelatedCallsQTD").Value = 0, "--", FormatPercent(rs2.Fields("SoldCallsQTD").Value/rs2.Fields("SalesRelatedCallsQTD").Value, 2))
При запуске макроса в Excel я получаю «Ошибка выполнения„6“: Переполнение» ошибка.
Я знаю, что есть возможность получить значение 0 в знаменателе, следовательно, использование IIf для проверки этого. Возможно ли, что Excel по-прежнему пытается рассчитать
FormatPercent(rs2.Fields("SoldCallsQTD").Value/rs2.Fields("SalesRelatedCallsQTD").Value, 2)
и выбросить ошибку? Если да, то как мне обойти это или что-то еще не так с этим кодом?
EDIT
Когда я добавляю часы здесь значения я получаю:
rs2.Fields("SalesRelatedCallsQTD").Value : 0 : Variant/Long
rs2.Fields("SoldCallsQTD").Value : 0 : Variant/Long
rs2.Fields("SoldCallsQTD").Value/rs2.Fields("SalesRelatedCallsQTD").Value : <Overflow> : Variant/Integer
Нельзя ли связать эту проблему с значениями «Null» здесь и там? Лучший способ - получить пошаговый режим и посмотреть, как выглядят ваши значения, и/или включить несколько «debug.Print» в ваш код. –
Вы можете проверить значения 'ActiveCell' (его адрес),' r', 'rs2.Fields (« SoldCallsQTD »). Value' и' rs2.Fields («SalesRelatedCallsQTD»). Значение «когда вы получаете ошибку? – assylias
См. Edit для значений – BrianKE