-->

Поиск решения произошла внутренняя непредвиденная ошибка или исчерпана доступная память

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!


  • Новое за 24 часа


  • Пользователи


  • Arise


    Senior Member

    701


    #
    16 февраля 2010 15:32

    KSIva, не будем обсуждать у кого какие знания в Экселе и гнуть пальцы.

    за ответ спасибо:beer:


  • dikar


    Клуб счастливых людей

    2587


    #
    17 февраля 2010 09:14

    друзья. непредвиденный трабл.

    надстройка — Поиск решения.

    офис 2007, но трабл не в этом.

    решение эксель мне находит, но результаты выдавать отказывается. точнее говоря матрицу решал многократно и решения выводились исправно а вот в тот момент когда я принял решение об окончательном виде матрицы и попытался вывести окончательные результаты после выполнения Поиска Решения выползает такая вот надпись:

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

    ЧТО ЭТО? и с чем его едят.

    мне победить эту запись не удалось.

    помогите плиз, кто чем может. очень нужно.

    Пишите в ЛС.


  • MaxRusak


    Senior Member

    54310


    #
    17 февраля 2010 11:55

    dikar:

    друзья. непредвиденный трабл.

    надстройка — Поиск решения.

    офис 2007, но трабл не в этом.

    решение эксель мне находит, но результаты выдавать отказывается. точнее говоря матрицу решал многократно и решения выводились исправно а вот в тот момент когда я принял решение об окончательном виде матрицы и попытался вывести окончательные результаты после выполнения Поиска Решения выползает такая вот надпись:

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

    ЧТО ЭТО? и с чем его едят.

    мне победить эту запись не удалось.

    помогите плиз, кто чем может. очень нужно.

    Эксель чувствителен к исходным данным в изменяемых ячейках.

    Легче зажечь одну маленькую свечку, чем клясть темноту. (с) Конфуций.


  • Олег


    Senior Member

    681


    #
    4 марта 2010 12:34

    Помогите правильно в макросе указать переименование страницы

    мне надо чтобы переименовывало по данным из ячейки А8 (они там меняются)

    в бейсике указывает имя из информации в ячейке, которое там было на момент написания макроса, а хочу чтобы чтобы имя было то, которое указано в упоминаемой ячейке на момент выполнения макроса

    Sheets(«2»).Select

    Sheets(«2»).Name = «Беларусь.43»


  • DimetriX


    Member

    314


    #
    4 марта 2010 19:50

    Олег,

    попробуй такой код.

    предполагается, что он выполняется на той закладке, где и расположена ячейка А8.

    то что надо?

    Sub zakladka()

    y = ActiveSheet.Name

    x = «» & y & «»

    Sheets(x).Select

    Sheets(x).Name = Cells(8, 1).Value

    End Sub


  • Олег


    Senior Member

    681


    #
    5 марта 2010 09:52

    DimetriX, спасибо, вроде работает


  • KSIva


    Senior Member

    11119


    #
    5 марта 2010 10:04

    Олег, DimetriX, а зачем эта строчка: Sheets(x).Select ? Без нее будет работать?

    «И покарал его Господь и отдал его в руки женщины». Кн. Юдифи, 16, гл. 7.


  • Олег


    Senior Member

    681


    #
    5 марта 2010 11:14

    KSIva, вроде и без неё работает


  • Артёмка


    Senior Member

    22047


    #
    9 марта 2010 14:57

    подскажите плиз, как преобразовать формат времени 5:34:00 в целое значение минут? т.е. 334 мин.

    спасибо.

    Поделись улыбкою своей — и тебе её не раз ещё припомнят…


  • KSIva


    Senior Member

    11119


    #
    9 марта 2010 15:07

    Артёмка:

    подскажите плиз, как преобразовать формат времени 5:34:00 в целое значение минут? т.е. 334 мин.

    спасибо.

    «Формат- ячейки- все форматы» указать формат [м] (буква «м» русская)

    «И покарал его Господь и отдал его в руки женщины». Кн. Юдифи, 16, гл. 7.


  • Артёмка


    Senior Member

    22047


    #
    9 марта 2010 17:28

    KSIva, в офисе гут, получилось. в гугл докс такой фокус не прокатывает. есть варианты?

    Поделись улыбкою своей — и тебе её не раз ещё припомнят…


  • KSIva


    Senior Member

    11119


    #
    10 марта 2010 09:44

    Артёмка:

    KSIva, в офисе гут, получилось. в гугл докс такой фокус не прокатывает. есть варианты?

    C гуглдокс не работаю, но попробуй значение ячейки умножить на 1440. Типа =A1*1440 , где а1 — ячейка со временем. Формат поставь числовой. Если есть секунды, округляй до целых.

    «И покарал его Господь и отдал его в руки женщины». Кн. Юдифи, 16, гл. 7.


  • Олег


    Senior Member

    681


    #
    22 марта 2010 14:27

    А можно написать макрос, который удаляет все листы кроме активного?


  • IveGotThePower


    USA Team

    3464


    #
    22 марта 2010 15:02

    Олег, можно:

    Sub DelSheet()

    For Each sh In Windows(1).SelectedSheets

    Name = sh.Name

    Exit For

    Next

    Application.DisplayAlerts = False

    For Each sh In ActiveWorkbook.Sheets

    If sh.Name <> Name Then

    sh.Delete

    End If

    Next

    Application.DisplayAlerts = True

    End Sub

    We can take that place. And than do what? Heads on pikes.


  • Олег


    Senior Member

    681


    #
    22 марта 2010 16:27

    I’ve got the power, да, работает,

    большое спасибо


  • Олег


    Senior Member

    681


    #
    23 апреля 2010 11:47

    Вот выше описывали мне как переименовать лист в соответствии со значением в определённой ячейке

    А можно ли также переименовать книгу? Нужно чтобы книга сохранялась на рабочий стол и обзывалась значением в ячейке А8 + дата и время

    помогите пожалуйста


  • DimetriX


    Member

    314


    #
    24 апреля 2010 21:31

    Олег, попробуйте. Но вместо «F:» надо прописать точный путь к рабочему столу, он у вас может быть другой, чем у меня, поэтому и не вписывал.

    Sub new1()

    d = Format(Date, «YYYYMMDD») & «_» & Format(Time, «HHMMSS») & «.xls»

    ActiveWorkbook.SaveAs Filename:=»F:» & Cells(8, 1).Value & «_» & d

    End Sub


  • Олег


    Senior Member

    681


    #
    26 апреля 2010 10:04

    DimetriX, спасибо, работает


  • Vita


    Senior Member

    2666


    #
    6 мая 2010 14:13

    как можно сделать так чтобы один и тот же колонтитул был на всех листах файла?

    а то листов много везде настраивать долго :(

    Лучше один раз вовремя — чем два раза правильно!


  • KSIva


    Senior Member

    11119


    #
    6 мая 2010 15:20

    Vita:

    как можно сделать так чтобы один и тот же колонтитул был на всех листах файла?

    а то листов много везде настраивать долго

    Выделяешь первый лист, Ctrl+щелчок по ярлыку последнего. Выделяются все листы (вверху в заголовке окна появляется слово [Группа]). Устанавливаешь колонтитулы — они утанавливаются для всех выделенных листов.

    «И покарал его Господь и отдал его в руки женщины». Кн. Юдифи, 16, гл. 7.

Помогите пожалуйста решить проблему добавления ограничений в 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 решение находит но при попытке создать отчеты по результатам и по устойчивости выдает эту ошибку.
Может кто сталкивался? Как исправить? (

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

Следить

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

Автор: Гость

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

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

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

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