Обновление отчета в VBA(поиск решения)

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Boris_The_Blade
Сообщения: 1
Зарегистрирован: 18 июн 2006, 22:02

18 июн 2006, 22:24

После операции «Поиск решения» мне нужно вывести «отчет по результатам». Я создал макрос на поиск решения, все работает, но если несколько раз выполнить поиск решения, то отчет не обновляется, а создается новый отчет и строки ограничений добавляются к строкам из предыдущего отчета(даже, если выйти из excel, а потом войти обратно).

Листинг макроса:
Sub Поиск_решения()
'
' Поиск_решения Макрос
' Макрос записан 18.06.2006 ()
'
' Сочетание клавиш: Ctrl+п
'
Range("D4").Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[-1]C[-2]:R[-1]C[-1],RC[-2]:RC[-1])"
Range("D7").Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[-4]C[-2]:R[-4]C[-1],RC[-2]:RC[-1])"
Range("D8").Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[-5]C[-2]:R[-5]C[-1],RC[-2]:RC[-1])"
SolverOk SetCell:="$D$4", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$3:$C$3"
SolverOk SetCell:="$D$4", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$3:$C$3"
SolverAdd CellRef:="$D$7", Relation:=1, FormulaText:="$E$7"
SolverAdd CellRef:="$D$8", Relation:=1, FormulaText:="$E$8"
SolverAdd CellRef:="$B$3:$C$3", Relation:=3, FormulaText:="0"
SolverOk SetCell:="$D$4", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$3:$C$3"
SolverOptions MaxTime:=100, Iterations:=100, Precision:=0.000001, AssumeLinear _
:=True, StepThru:=False, Estimates:=1, Derivatives:=1, SearchOption:=1, _
IntTolerance:=5, Scaling:=False, Convergence:=0.0001, AssumeNonNeg:=False
SolverOk SetCell:="$D$4", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$3:$C$3"
SolverSolve
End Sub

Подскажите, пожалуйста, как сделать так, чтобы строки не добавлялись, а отчет обновлялся. Как очистить буфер отчета
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

27 июн 2006, 02:11

SolverDelete - удаляет ограничения, но он неудобен.

SolverLoad LoadArea:="$A$1" - очистит ВСЮ модель, если A1 - пустая ячейка.

Вообще, для управления Солвером из макросов удобнее всего использовать выгрузку и загрузку всей модели целиком

SolverSave SaveArea:="$D$15:$D$17"
GeorgeSoca
Сообщения: 0
Зарегистрирован: 12 окт 2015, 04:09
Откуда: Guam
Контактная информация:

16 окт 2015, 01:31

На нашем сайте вы можете чувствовать себя в безопасности! Кроме того, мы используем зеркальные жесткие диски на все наши серверы, поэтому мы также взять резервную два раза в день на отдельных серверах. Мы используем ISPmanager, как на панели управления. ISPmanager является панель управления, которая позволяет легко управлять своей веб-сайт. С нами вы можете разместить столько веб-сайты и домены, которые вы хотите для учетной записи хостинга.
virtual hosting
Ответить