hadoan-pap
Thành viên tiêu biểu
- Tham gia
- 8/7/15
- Bài viết
- 460
- Được thích
- 19
Em chào mọi người!
Em có đoạn code sử dụng để gọi Excel Solver và setup 1 số điều kiện vào như bên dưới ạ. Tuy nhiên khi chạy đoan code này, vì là em loop từng row nên em có thay thế các vị trí cell cố định bằng biến truyền vào kiểu như : "$EV$5069" = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("EV" & I).Value
Nhưng đoạn code bên dưới khi em thay thế các cell đó bằng giá trị kiểu như dòng bên trên thì nó trả ra lỗi "the objecttive cell value do not converage" ạ.
Dạ, em muốn hỏi nguyên nhân và làm thế nào để có thể thay thế các vị trí cell cố định đó bằng dòng phía trên em có ví dụ ạ ?
Em xin cảm ơn!
Dim EV_Plan, FA_Plan, H_Plan As String
For I = MaHang_Start_Row To MaHang_End_Row
If Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("P" & I).Value = "Plan" And Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("L" & I).Value = "P" Then
If Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("I" & I).Value = "NG" Then
MsgBox I
EV_Plan = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("EV" & I).Value
FA_Plan = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("FA" & I).Value
H_Plan = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("H" & I).Value
SolverReset
SolverOk SetCell:=FA_Plan, MaxMinVal:=1, ValueOf:=0, ByChange:=EV_Plan, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$EV$5069", Relation:=1, FormulaText:="19.75"
SolverAdd CellRef:="$EV$5069", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$H$5069", Relation:=1, FormulaText:="105"
SolverAdd CellRef:="$H$5069", Relation:=3, FormulaText:="0"
SolverOk SetCell:=CInt(FA_Plan), MaxMinVal:=1, ValueOf:=0, ByChange:="$EV$5069", Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$FA$5069", MaxMinVal:=1, ValueOf:=0, ByChange:="$EV$5069", Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End If
End If
Next I
Em có đoạn code sử dụng để gọi Excel Solver và setup 1 số điều kiện vào như bên dưới ạ. Tuy nhiên khi chạy đoan code này, vì là em loop từng row nên em có thay thế các vị trí cell cố định bằng biến truyền vào kiểu như : "$EV$5069" = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("EV" & I).Value
Nhưng đoạn code bên dưới khi em thay thế các cell đó bằng giá trị kiểu như dòng bên trên thì nó trả ra lỗi "the objecttive cell value do not converage" ạ.
Dạ, em muốn hỏi nguyên nhân và làm thế nào để có thể thay thế các vị trí cell cố định đó bằng dòng phía trên em có ví dụ ạ ?
Em xin cảm ơn!
Dim EV_Plan, FA_Plan, H_Plan As String
For I = MaHang_Start_Row To MaHang_End_Row
If Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("P" & I).Value = "Plan" And Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("L" & I).Value = "P" Then
If Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("I" & I).Value = "NG" Then
MsgBox I
EV_Plan = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("EV" & I).Value
FA_Plan = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("FA" & I).Value
H_Plan = Workbooks("MPS_Template_File.xlsm").Sheets("MPS").Range("H" & I).Value
SolverReset
SolverOk SetCell:=FA_Plan, MaxMinVal:=1, ValueOf:=0, ByChange:=EV_Plan, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$EV$5069", Relation:=1, FormulaText:="19.75"
SolverAdd CellRef:="$EV$5069", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$H$5069", Relation:=1, FormulaText:="105"
SolverAdd CellRef:="$H$5069", Relation:=3, FormulaText:="0"
SolverOk SetCell:=CInt(FA_Plan), MaxMinVal:=1, ValueOf:=0, ByChange:="$EV$5069", Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$FA$5069", MaxMinVal:=1, ValueOf:=0, ByChange:="$EV$5069", Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End If
End If
Next I