My workbook has three sheets, one of which's names is "Data".
Why on earth does the .select method not work? The code runs fine, without giving errors, but never selects/goes to the "Data" sheet...
Private Sub CommandButton1_Click()
Dim solverAvailable As Boolean
solverAvailable = CheckSolver()
Sheets("Data").Select
If solverAvailable = True Then
SolverReset
SolverOk SetCell:="$D$56", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$12:$C$13", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$H$56", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$12:$D$13", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$M$56", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$12:$E$13", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$F$77", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$14:$C$15", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$L$77", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$14:$D$15", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$S$77", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$14:$E$15", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$D$133", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$83:$C$84", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$H$133", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$83:$D$84", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$M$133", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$83:$E$84", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$F$157", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$85:$C$86", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$L$157", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$85:$D$86", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$S$157", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$85:$E$86", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$D$209", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$163:$C$164" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$H$209", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$163:$D$164" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$M$209", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$163:$E$164" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$F$231", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$165:$C$166" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$L$231", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$165:$D$166" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
SolverReset
SolverOk SetCell:="$S$231", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$165:$E$166" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
End If
Beep
End Sub
I would actually like the sheet selection to be inside the if, but if it is in there, it gives a "9" error: subscript out of range
!
Ideally, I don't even want to select the sheet - I would like to reference Sheets("Data").Range(whatever), but that also gives the subscript out of range
error.
Solved!
I removed the CheckSolver()
function and call (I got it from http://peltiertech.com/Excel/SolverVBA.html), now it works perfectly!