-->

Поиск решения непредвиденная внутренняя ошибка или достигнут предел доступной памяти

I’m trying to use the solver from Excel in VBA but I’m having trouble. I keep getting the following error: «Solver: An unexpected internal error occurred, or available memory was exhausted.»

Now, I guess solver isn’t out of memory as I can solve the same problem when using the solver dialog.

Here’s my code:

Sub CoolSolverButton()

SolverReset

SolverOK setCell:=Range("$CK$203"), MaxMinVal:=1, ByChange:=Range("$BH$203:$BQ$222"), Engine:=2, EngineDesc:="Simplex LP"

SolverAdd CellRef:=Range("$BH$203:$BQ$222"), relation:=5, FormulaText:="binary"
SolverAdd CellRef:=Range("$BH$223:$BQ$223"), relation:=1, FormulaText:=Range("$BH$225:$BQ$225")
SolverAdd CellRef:=Range("$BH$227:$BH$245"), relation:=1, FormulaText:=Range("$BI$227:$BI$245")
SolverAdd CellRef:=Range("$BJ$227:$BJ$245"), relation:=1, FormulaText:=Range("$BK$227:$BK$245")
SolverAdd CellRef:=Range("$BL$227:$BL$245"), relation:=1, FormulaText:=Range("$BM$227:$BM$245")
SolverAdd CellRef:=Range("$BN$227:$BN$245"), relation:=1, FormulaText:=Range("$BO$227:$BO$245")
SolverAdd CellRef:=Range("$BP$227:$BP$245"), relation:=1, FormulaText:=Range("$BQ$227:$BQ$245")
SolverAdd CellRef:=Range("$BR$203:$BR$222"), relation:=2, FormulaText:=Range("$BT$203:$BT$222")
SolverAdd CellRef:=Range("$BU$203:$BU$222"), relation:=2, FormulaText:=Range("$BW$203:$BW$222")

SolverSolve UserFinish:=True

SolverFinish KeepFinal:=1

End Sub

Any ideas?

Thanks!

Помогите пожалуйста решить проблему добавления ограничений в Solver посредством кода на VBA. Суть проблемы в том, что при вводе ограничений посредством редактора VBA и последующем запуске Solver, выскакивает сообщение «Поиск решения: непредвиденная внутренняя ошибка или достигнут предел допустимой памяти». При анализе проблемы выяснилось, что такая ошибка появляется только в том случае, когда я ввожу дробные ограничения. Если целые числа, то все ОК. Привожу пример кода для пояснения:

Sub AddLimitSolver()
For i = 3 To 32
      Application.Run "Solver.xla!SolverAdd", Cells(i, 1), 1, Cells(i, 3)
      Application.Run "Solver.xla!SolverAdd", Cells(i, 1), 3, Cells(i, 2)
Next i
End Sub

Привет.

Возникла проблема — есть файл МС Экселя, в котором задаются некоторые данные и вызывается надстройка «Поиск решения».
Для универа надо это оформить через Дельфи — я решил прикрутить дельфийский интерфейс к Экселю.
Сделал заполнение исходных данных — все работает нормально, теперь надо вызвать надстройку.
Искал везде — не нашел как ее вызвать напрямую, тогда сделал макрос с вызовом настройки и стал дергать его из дельфи. Вот тут-то и появилась проблема: если я зову макрос просто из Экселя, то все отрабатывает нормально. Если же я зову его из свой программы, то получаю сообщение «Поиск решения: непредвиденная внутренняя ошибка или достигнут предел доступной памяти».

Вопрос: кто-нибудь знает чего ей надо и как это ей дать?

Здравствуйте, Serg32M, Вы писали:

SM>Возникла проблема — есть файл МС Экселя, в котором задаются некоторые данные и вызывается надстройка «Поиск решения».

SM>Для универа надо это оформить через Дельфи — я решил прикрутить дельфийский интерфейс к Экселю.
SM>Сделал заполнение исходных данных — все работает нормально, теперь надо вызвать надстройку.
SM>Искал везде — не нашел как ее вызвать напрямую, тогда сделал макрос с вызовом настройки и стал дергать его из дельфи. Вот тут-то и появилась проблема: если я зову макрос просто из Экселя, то все отрабатывает нормально. Если же я зову его из свой программы, то получаю сообщение «Поиск решения: непредвиденная внутренняя ошибка или достигнут предел доступной памяти».

SM>Вопрос: кто-нибудь знает чего ей надо и как это ей дать?

Ты бы хоть пример кода кинул…. где ото вылазит…

… << RSDN@Home 1.1.4 beta 3 rev. 185>>

Здравствуйте, Vodyamba, Вы писали:

V>Здравствуйте, Serg32M, Вы писали:


SM>>Возникла проблема — есть файл МС Экселя, в котором задаются некоторые данные и вызывается надстройка «Поиск решения».

SM>>Для универа надо это оформить через Дельфи — я решил прикрутить дельфийский интерфейс к Экселю.
SM>>Сделал заполнение исходных данных — все работает нормально, теперь надо вызвать надстройку.
SM>>Искал везде — не нашел как ее вызвать напрямую, тогда сделал макрос с вызовом настройки и стал дергать его из дельфи. Вот тут-то и появилась проблема: если я зову макрос просто из Экселя, то все отрабатывает нормально. Если же я зову его из свой программы, то получаю сообщение «Поиск решения: непредвиденная внутренняя ошибка или достигнут предел доступной памяти».

SM>>Вопрос: кто-нибудь знает чего ей надо и как это ей дать?


V>Ты бы хоть пример кода кинул…. где ото вылазит…

Макрос в Ёкселе

SolverOk SetCell:=»$D$21″, MaxMinVal:=1, ValueOf:=»0″, ByChange:=»$D$9:$F$9″
SolverSolve UserFinish:=True

Вызов из Дельфи
xl: TExcelApplication;

frmMain.xl.Run(‘MacroForDelphi’); // вот тут оно и говорит такую фигню

Программное обеспечение

Проблема с Поиском решения в MS ExcelПри решении задачи на оптимизацию вылезает ошибка «Поиск решения: непредвиденная внутренняя ошибк или достигнут предел доступной памяти». С памятью все нормально вроде, больше никакая прога не жалуется. Excel решение находит но при попытке создать отчеты по результатам и по устойчивости выдает эту ошибку.
Может кто сталкивался? Как исправить? (

Попроси больше объяснений

Следить

Отметить нарушение

Автор: Гость

Здравствуйте.

Передо мной встала такая вот проблема:
Хочу вызвать из Delphi Поиск решения в Excel. Для этого написал макрос, запускающий поиск решения, и

сохранил в шаблоне книги Excel.
Из Delphi запускаю Excel:
XLApp:=CreateOleObject(«Excel.Application»);
Открываю шаблон:
Workbook:=XLApp.Workbooks.Add(«c:TPsolver1.xlt»);
Передаю необходимые данные в Excel и пытаюсь запустить макрос:
OLEVariant(XLApp).Run(«Module1.runsolver»);

Как только дело доходит до выполнения макроса, появляется сообщение об ошибке:
«Поиск решения: непредвиденная внутренняя ошибка или достигнут предел памяти».

Далее: Сохранаяем книгу. Закрываем. Открываем вручную. Запускаем макрос. Всё работает.

Вопрос: Возможна ли работа из Delphi c Solver»ом Excel через OLEAutomation? И вообще возможно ли всё

это в принципе? И если возможно, то как?

Спасибо за внимание. Буду рад любым комментариям.

Возможно, вам также будет интересно:

  • Поиск ошибок системы win 10
  • Показывает стиралка самсунг ошибка 3е
  • Показывает ошибку часов что делать
  • Поиск ошибок реестра windows 10
  • Показывает ошибку стиралка самсунг

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии