Excel Solver и VBA: числа с плавающей запятой / десятичные числа в ограничениях неправильно конвертируются в целые числа? - PullRequest
3 голосов
/ 16 апреля 2011

Я запускаю сценарии VBA как в Excel 2007, так и в 2010 году, которые требуют большой оптимизации с использованием встроенного Солвера в Excel.

Как правильно указать десятичные ограничения, такие как X> = 0,0001где X будет переменной решения проблемы.

SolverAdd CellRef:=cells(5,5), Relation:=3, FormulaText:="0.0001"

Или я должен удалить кавычки ""?И позволяет ли интерфейс VBA Solver разрешать десятичные (нецелые) ограничения в любом случае?

Я спрашиваю, потому что иногда у меня возникает (неподтвержденное) ощущение, что ограничение> = 0,0001 неправильно интерпретируется как> = 1, что, конечно, дает неверные результаты.

Это было быбыло бы здорово, если бы кто-то мог прояснить мне эти вопросы.

Стив

1 Ответ

0 голосов
/ 17 августа 2011

Мы обнаружили, что FormulaText действительно может повлиять на окончательное решение. Мы всегда просто использовали прямые числа без кавычек:

SolverAdd CellRef:=cells(5,5), Relation:=3, FormulaText:=0.0001
...