Обновление отчета в VBA(поиск решения)
Добавлено: 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
Подскажите, пожалуйста, как сделать так, чтобы строки не добавлялись, а отчет обновлялся. Как очистить буфер отчета
Листинг макроса:
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
Подскажите, пожалуйста, как сделать так, чтобы строки не добавлялись, а отчет обновлялся. Как очистить буфер отчета