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找不到「數據」工作表。如果您嘗試使用相同的語法從即時窗口中選擇它或引用一個範圍,會發生什麼情況? –