-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? –