Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2011, 20:25   #1
Kolpachog
 
Регистрация: 12.05.2010
Сообщений: 9
По умолчанию Solver проблема

Здравствуйте, суть проблемы в том, что когда я пытаюсь подключить solver к программе, то она его не находит. Пробовал запихивать в одну папку вместе с ним, пробовал пихать в C:\Program Files\Microsoft Office\OFFICE11\Library, все тоже самое. Отыскал на вашем форуме следующий кусок:
Sub OpenSolver()
Dim St As String
On Error Resume Next
St = ThisWorkbook("SOLVER.XLA").Name
If Len(St) > 0 Then Exit Sub
St = ThisWorkbook.Application.Path & "\Library\Solver\Solver.xla"
Workbooks.Open St
End Sub
прописал его перед SolverReset, ну и вроде бы как заработало, больше ошибки "Sub or Function not defined" не выдавал, но зато теперь
ругается на Range. В общем даже не знаю что делать.
Вложения
Тип файла: rar Solver.rar (200.4 Кб, 16 просмотров)
Kolpachog вне форума Ответить с цитированием
Старый 24.03.2011, 21:26   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
но зато теперь ругается на Range
Где конкретно ругается?
В коде много ошибок, которую надо исправить?

Может, в этом проблема?
Цитата:
Код:
    Cells(2 * x + 1, 2 * x + 1).Name = "Summatrat"
    Range("Sumzatrat").Formula = "=SUMPRODUCT(Stoumost,Plan)"
Пробуем так:
Код:
    Cells(2 * x + 1, 2 * x + 1).Name = "Sumzatrat"
    Range("Sumzatrat").Formula = "=SUMPRODUCT(Stoumost,Plan)"
    'Суммы плана по строкам:
    For i = 1 To x
        Range(Cells(x + i, y + 1), Cells(x + i, 2 * y)).Name = "Strok" & i
и так:
Код:
Sub OpenSolver()
    Dim St As String
    On Error Resume Next
    St = ThisWorkbook("SOLVER.XLA").Name
    If Len(St) > 0 Then Exit Sub
    St = ThisWorkbook.Application.Path & "\Library\Solver\Solver.xla"
    Workbooks.Open St
    ThisWorkbook.Activate
    SolverReset
    SolverOk SetCell:=Range("Sumzatrat"), MaxMinVal:=2, ByChange:=Range("Plan, Dop")
    SolverAdd CellRef:=Range("Plan"), Relation:=5, FormulaText:="двоич."
    SolverAdd CellRef:=Range("Ogran1"), Relation:=2, FormulaText:="1"
    SolverAdd CellRef:=Range("Ogran2"), Relation:=2, FormulaText:="1"
    SolverAdd CellRef:=Range("Ogran3"), Relation:=2, FormulaText:="0"
    SolverAdd CellRef:=Range("Ogran4"), Relation:=1, FormulaText:="0"
    SolverAdd CellRef:=Range("Dop"), Relation:=3, FormulaText:="1"
    SolverAdd CellRef:=Range("Dop"), Relation:=1, FormulaText:="Vsego"
    SolverAdd CellRef:=Range("Dop"), Relation:=4, FormulaText:="целое"
    SolverAdd CellRef:=Range("A100"), Relation:=2, FormulaText:="1"
    SolverOptions MaxTime:=300, Interations:=1000
    SolverSolve
End Sub
PS: В коде ещё много ошибок - но дальше разбирайтесь самостоятельно
EducatedFool вне форума Ответить с цитированием
Старый 25.03.2011, 13:17   #3
Kolpachog
 
Регистрация: 12.05.2010
Сообщений: 9
По умолчанию

Большое спасибо, что указали на ошибки. Буду их исправлять.
Kolpachog вне форума Ответить с цитированием
Старый 27.03.2011, 15:06   #4
Kolpachog
 
Регистрация: 12.05.2010
Сообщений: 9
По умолчанию

Все ошибки исправил, но все равно не хочет корректно считать, "Неправильная ссылка на ячейку".
В общем, действовал четко по книге, весь код перепроверил - сходится. Если возможно укажите мне что там не так. (В приложении есть фотографии из книги с кодом, "Задача Коммивояжера")
Вложения
Тип файла: rar Solver2.rar (4.05 Мб, 17 просмотров)
Kolpachog вне форума Ответить с цитированием
Старый 27.03.2011, 23:58   #5
Kolpachog
 
Регистрация: 12.05.2010
Сообщений: 9
По умолчанию

Все, уже можно не помогать, я нашел сайт автора книги, на котором нашел интересующий меня макрос. Это победа!

Последний раз редактировалось Kolpachog; 28.03.2011 в 00:18.
Kolpachog вне форума Ответить с цитированием
Старый 09.10.2011, 01:34   #6
Raikhman
Пользователь
 
Аватар для Raikhman
 
Регистрация: 30.01.2009
Сообщений: 75
По умолчанию

Полезный пример. Интересно, что при его выполнении Solver подключается, а флажок в диалоговом окне "Надстройки" не появляется
Raikhman вне форума Ответить с цитированием
Старый 24.03.2012, 16:38   #7
rusttemm
Новичок
Джуниор
 
Регистрация: 17.12.2010
Сообщений: 1
По умолчанию

Что за книга? Кто автор?
rusttemm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналоги Solver Frizzled Microsoft Office Excel 2 09.10.2011 12:27
Использование надстройки solver в VB6 Raikhman Microsoft Office Excel 3 09.10.2011 03:03
Проблема с кодом Solver, знающие люди, отзовитесь mexanik996 Microsoft Office Excel 2 16.03.2011 09:58
Проблема с вводом ограничений в Solver kovalevskivf Microsoft Office Excel 0 12.11.2009 23:41
Проблема с программным запуском надстройки Solver kovalevskivf Microsoft Office Excel 5 22.05.2009 19:53