我很难弄清楚为什么我的VBA代码不起作用(只是部分工作),并觉得它与将求解器集成到我的VBA中有关。我是Stack Overflow的新手,所以如果我没有正确发布我的问题,我会道歉。附件是我的代码的副本,以及我的三张表格的屏幕截图,其中代码接口和第三张工作表上应显示最终值的结果。
请注意,由于采取了安全措施,我的屏幕截图中的值会变黑。
随意提出任何问题以进一步澄清我的问题。
Sub WorkingLoop()
'
' WorkingLoop Macro
'
' Keyboard Shortcut: Ctrl+Shift+L
'
SolverOptions StepThru:=False
Dim i As Long
Dim LastRow As Long
Dim wb As Workbook
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Dim sht3 As Worksheet
Set wb = ThisWorkbook
Set sht1 = wb.Sheets("Modified Data")
Set sht2 = wb.Sheets("Solver | Macro")
Set sht3 = wb.Sheets("New Price")
LastRow = sht1.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
For i = 2 To LastRow
sht2.Range("A2") = sht1.Range("A" & i).Value
sht2.Range("F2:F7") = sht2.Range("D2:D7").Value
SolverOk SetCell:="$B$14", MaxMinVal:=1, ValueOf:=0, ByChange:="$B$12", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
sht3.Range("A" & i) = sht2.Range("A2").Value
sht3.Range("D" & i) = sht2.Range("B10").Value
sht3.Range("E" & i) = sht2.Range("B11").Value
sht3.Range("F" & i) = sht3.Range("B17").Value
sht3.Range("G" & i) = sht3.Range("B18").Value
sht3.Range("H" & i) = sht3.Range("B19").Value
sht3.Range("I" & i) = sht3.Range("B20").Value
sht3.Range("J" & i) = sht3.Range("B21").Value
sht3.Range("K" & i) = sht3.Range("B22").Value
Next i
End Sub