Я не очень хорошо знаю ошибку переполнения, поэтому здесь я в растерянности.
Запись в VBA Я вызываю функцию VBA, которая является оберткой функции C ++ из dll (к которой у меня нет доступа к внутренностям).Функция VBA / C ++ возвращает значение типа double.Это производная оценка с использованием численных методов.
Какое-то время назад (но, возможно, оно ушло сейчас), я получал ошибку переполнения при попытке присвоить возврат функции переменной, объявленной как double. Но при остановке ошибки, я мог видеть правильное значение, назначенное для double, в окне localals (8.17 ...).И когда я вместо этого присваиваю функцию, возвращаемую варианту, я получаю то же значение без ошибок, вариант типа Variant / Double.
Есть идеи, что здесь может происходить?Я полностью потерян.Заранее спасибо за любые идеи.R
Редактировать: Еще одна вещь, которую я пытался применить CDbl к функции return при назначении ее варианту.Вот некоторый псевдокод, чтобы прояснить мои случаи:
Dim db as Double, va as Variant
db = DerivativeValue(a, b, c...)
Это дает переполнение, но db имеет правильное значение в окне locals при ошибке.
va = DerivativeValue(a, b, c...)
Нет ошибок, то же значение.va типа Variant / Double
va = CDbl(DerivativeValue(a, b, c...))
Теперь снова переполнение.Я забыл, что va делал в окне Locals в этом случае, но, скорее всего, оно такое же, как в случае 1.