Page 1 of 1

สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Fri Nov 27, 2020 11:51 pm
by Chanon.witt
สวัสดีครับ อาจารย์และพี่ๆ
ผมลองใช้งาน Solver โดยมี Condition
1. Cell M3:N3 >=0
2. Cell K2 = 1
3. ให้ค่า L3 มีค่าน้อยที่สุด
โดยให้เปลี่ยนค่าใน Cell H3:I3
พอผมกด Solver ตาม Condition ด้านบนได้ค่า = 2.283823
แล้วผมก็ Record Macro (Macro1_Original) แต่พอกดที่ Record Macro แล้วค่าที่ได้ = 1.260106
ผมเลยไปหาอ่านแล้วแก้ไข Code (Macro1_Modify_1) พอกดก็ได้ = 1.260106
เลยเข้าไปดูใน Solver ว่ามีอะไรแปลกไหมก็เจอว่า Condition ที่ใส่เข้าไปมีแต่ ข้อ 1 เลยไม่แน่ใจว่าเป็นเพราะสาเหตุนี้หรือไม่ที่ทำให้ไม่เท่ากัน แล้วถ้าแบบนี้ควรแก้ไขยังไงได้บ้างครับ
ขอบพระคุณมากครับ
Test VBA Solver.xlsb

Code: Select all

Sub Macro1_Original()
    SolverReset
    
    SolverOk SetCell:="$L$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$3:$I$3", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
        
    SolverAdd CellRef:="$F$2", Relation:=1, FormulaText:="1"
    
    SolverOk SetCell:="$L$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$3:$I$3", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
        
    SolverAdd CellRef:="$H$3:$I$3", Relation:=3, FormulaText:="0"
    
    SolverOk SetCell:="$L$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$3:$I$3", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
        
    SolverOk SetCell:="$L$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$3:$I$3", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
   
    SolverSolve
End Sub

Code: Select all

Sub Macro1_Modify_1()
    SolverReset

    SolverAdd CellRef:="$F$2", Relation:=1, FormulaText:="1"

    SolverAdd CellRef:="$H$3:$I$3", Relation:=3, FormulaText:="0"

    SolverOk SetCell:="$L$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$3:$I$3", _
        Engine:=1, EngineDesc:="GRG Nonlinear"

    SolverSolve (True)
End Sub

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Sat Nov 28, 2020 7:35 am
by snasui
:D กรุณา Update Version ที่ใช้ตามตัวอย่างใน Link นี้ด้วยครับ https://snasui.com/viewtopic.php?f=6&p=103177#p103177

สำหรับปัญหานี้ยังไม่พบวิธีแก้ครับ หากจะแก้ปัญหาเฉพาะหน้าคือสร้างด้วย Manual เอาไว้ก่อนแล้วค่อยเรียกใช้แทนสร้างและเรียกใช้ด้วย VBA เป็นครั้ง ๆ ไปครับ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Sat Nov 28, 2020 10:18 am
by Chanon.witt
ตอนแรกว่าจะทำ loop ต่อครับ
เพราะมีค่าที่ต้องการหาเยอะมาก
คิดว่า Manual ไม่หน้าจะไหว

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Sat Nov 28, 2020 10:18 am
by Chanon.witt
อาจารย์พอมีวิธีคือแนะนำไหมครับ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Sat Nov 28, 2020 10:56 am
by snasui
:D ไม่มีวิธีอื่นแนะนำนอกจากให้ไปสอบถามจากผู้สร้าง Add-ins โดยตรงครับ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Mon Nov 30, 2020 7:58 pm
by Chanon.witt
สอบถามอาจารย์และพี่ๆ เพิ่มเติมครับ
ถ้าผมจะ Solver โดยให้ค่าใน Cell L3 น้อยที่สุด
โดยให้เปลี่ยนค่าใน H3:I3 และ F2 = 1
VBA แบบนี้ถูกต้องไหมครับ

Code: Select all

Sub Macro1_Original()
    
    SolverReset
        
    SolverAdd CellRef:="$F$2", Relation:=2, FormulaText:="1"
    
    SolverOk SetCell:="$L$3", MaxMinVal:=2, ValueOf:=1, ByChange:="$H$3:$I$3", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
        
    SolverSolve
    
End Sub

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Tue Dec 01, 2020 8:33 am
by logic
ถ้าคลิก Solver แล้วมีค่าที่เราใส่จากโค้ดค้างอยู่ก็ใช้ได้ครับ 😀

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Tue Dec 01, 2020 8:50 am
by Chanon.witt
มันไม่ค้างอยู่ครับ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Tue Dec 01, 2020 9:18 am
by logic
ถ้าไม่ค้าง ก็ต้องเช็คจากผลลัพธ์เทียบกับทำด้วยมือแหละครับ ถ้าผลลัพธ์ตรงกันก็ถือว่าถูกต้องแล้วครับ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Tue Dec 01, 2020 9:32 am
by Chanon.witt
ผลลัพธ์เทียบกับทำด้วยมือไม่เท่ากันครับ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Tue Dec 01, 2020 9:53 am
by logic
ถ้าถามว่าโค้ดถูกไหมผมว่าถูกถ้าบันทึกด้วยมาโครแล้วได้โค้ดนั้นมาครับ 😁

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Tue Dec 01, 2020 12:11 pm
by Chanon.witt
ผมบันทึกด้วยมาโครครับ
แต่ไม่เข้าใจว่าทำไมบันทึกแล้ว
เอามาใช้งานกลับไม่เท่ากับที่กดปกติ

Re: สอบถามปัญหาการใช้ VBA + Solver หลายตัวแปร

Posted: Thu Dec 03, 2020 9:43 pm
by snasui
:D ประเด็นนี้ผมตอบไปแล้วตามโพสต์ #5 ครับ