0
我的工作簿有三张表,其中一个名称是“数据”。表()。选择/求解器VBA不工作
为什么地球上的.select方法不起作用? 代码运行正常,没有给予错误,但也不会选择/转移到“数据”表...
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
我真的喜欢纸张选择在里面的,如果,但如果是在那里,它会给出“9”的错误:subscript out of range
!理想情况下,我甚至不想选择工作表 - 我想参考工作表(“数据”)。范围(不管),但这也给出了subscript out of range
错误。
尝试'ThisWorkbook.Sheets(“Data”)....' –
我试过了,它没有区别。这里是原始文件,如果你想看看https://db.tt/2eaD8n4v – Mierzen
@Mierzen在Excel 2007中,在各种Solver语句中删除对引擎的引用后,它运行良好并选择数据表。下标超出范围错误的事实通常意味着VBA找不到“数据”工作表。如果您尝试使用相同的语法从即时窗口中选择它或引用一个范围,会发生什么情况? –