-1
我正在尝试使用Excel中的求解器函数编写Excel循环宏。在循环VBA宏中使用Excel解算器功能
在循环中的每次迭代之后,我需要在工作表上重新计算公式,但是似乎在循环过程中某些时候计算被设置为手动,即使我没有对其进行编码(至少不是故意) 。
理想情况下,我希望我的工作簿在使用求解器函数之前在我的循环开始时计算所有公式。
我附上了我目前拥有的代码。
任何帮助将不胜感激。
Sub Lineups_Generator()
'
' Lineups_Generator Macro
'
' Keyboard Shortcut: Ctrl+q
Application.ScreenUpdating = False
Sheets("DK Lineups").Select
Range("Output").Select
Selection.ClearContents
E = Range("NumberOFLineups").Value
T = 7
For I = 1 To E
Calculate
SolverOk SetCell:="$Q$12", MaxMinVal:=1, ValueOf:=0, ByChange:="$H$4:$H$203", _
Engine:=2, EngineDesc:="Simplex LP"
SolverSolve Userfinish:=True
Sheets("DK Lineups").Select
Range("Lineup").Select
Application.CutCopyMode = False
Selection.Copy
Cells(T, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
T = T + 1
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
为什么不在循环之前移动它:'Application.Calculation = xlCalculationAutomatic' ...另外,复制粘贴可以写成2行:'Sheets(“DK Lineup”)。Range(“Lineup “)复制(新行)单元格(T,1).PasteSpecial xlPasteValues' –
@ScottHoltzman我已经尝试在循环之前使用Application.Calculation = xlCalculationAutomatic,但似乎不起作用。最后我得到了这段代码,因为当我完成运行宏时,计算总是被设置为手动的,这导致我相信在循环过程中的某个时刻计算被设置为手动。 – VincentR
你是否逐行逐行查看并实际上看到哪一行将calc设置为manual? –