วิธีการสร้างแมโคร Visual Basic โดยใช้ Solver ของ Excel ใน Excel 97

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 843304 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายวิธีการใช้ Microsoft Excel Solver ใน Microsoft Excel 97 เพื่อสร้างแมโคร Microsoft Visual Basic Microsoft Excel Solver ไม่ใช่ Microsoft Excel add-in

นอกจากนี้ บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับวิธีการสร้างแมโคร วิธีการออกแบบแมโคร และวิธีการทำงานกับข้อจำกัดของแมโคร บทความนี้ยังกล่าวอัลกอริทึมและวิธีการที่ใช้ โดย Solver Excel ของ Microsoft รายการต่อไปนี้แสดงหัวข้อทั้งหมดที่กล่าวถึงในบทความ

คำแนะนำ

บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับ Microsoft Excel Solver

ข้อมูลเพิ่มเติม

คำอธิบายของ Solver ที่ Microsoft Excel

Microsoft Excel Solver คือ Microsoft Excel ที่ช่วยให้ Solver ของ Excel Microsoft add-in ได้ คุณสามารถกำหนดค่าดีที่สุดสำหรับสูตรในเฉพาะ เซลล์เป้าหมายบนแผ่นงาน Microsoft Excel Microsoft Excel Solver ปรับปรุงค่าของอื่น ๆ เซลล์ที่เกี่ยวข้องกับเซลล์เป้าหมาย โดยใช้สมการ หลังจากที่คุณ สร้างสมการ และกำหนดชุดของพารามิเตอร์หรือข้อจำกัดสำหรับการ ตัวแปรในสมการ Microsoft Excel Solver พยายามแก้ไขปัญหาต่าง ๆ ที่จะมาถึงที่มี คำตอบที่เป็นไปตามข้อจำกัดทั้งหมด Microsoft Excel Solver ใช้องค์ประกอบต่อไปนี้เมื่อต้องการ "แก้ไข" สมการ:
  • เซลล์เป้าหมาย- เซลล์เป้าหมายมีวัตถุประสงค์ เป็นเซลล์อยู่ในรูปแบบแผ่นงานที่จะสามารถย่อเล็กสุด ขยายใหญ่สุด หรือตั้งค่าเป็นค่าที่แน่นอน
  • เซลล์ที่เปลี่ยนแปลง- เปลี่ยนเซลล์ที่มีตัวแปรในการตัดสินใจ เซลล์เหล่านี้มีผลกระทบต่อค่าของเซลล์เป้าหมาย เซลล์เหล่านี้อยู่ ทรานซิสชั่นท์ โดย Solver Excel ของ Microsoft เพื่อค้นหาการแก้ไขปัญหาที่ดีที่สุดสำหรับเซลล์เป้าหมาย
  • ข้อจำกัด- ข้อจำกัดที่มีข้อจำกัดในเนื้อหาของเซลล์ สำหรับ ตัวอย่าง เซลล์หนึ่งในรูปแบบของแผ่นงานอาจมีข้อจำกัดเป็นค่าจำนวนเต็ม ในขณะที่เซลล์อื่นอาจถูกจำกัดการน้อยกว่าค่าที่กำหนด
คุณสามารถทำให้การสร้างและจัดการรุ่น Microsoft Excel Solver ด้วย โดยใช้ Microsoft Visual Basic สำหรับแมโคแอปพลิเคชัน (VBA) บทความนี้อธิบายวิธีการใช้ ภาษาแมโคร VBA ใช้ในฟังก์ชัน Microsoft Excel Solver Microsoft Excel 97 บทความนี้อนุมานว่า คุณคุ้นเคยกับภาษา VBA และ Microsoft Visual Basic Editor สำหรับ Microsoft Excel 97 ตัวอย่างที่ใช้ในบทความนี้จะพร้อมใช้งานสำหรับการดาวน์โหลดที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://download.microsoft.com/download/excel97win/solverex/1.0/WIN98Me/EN-US/SolverEx.exe
หมายเหตุ นอกจากนี้คุณสามารถใช้แมโครและตัวอย่างที่อธิบายไว้ในที่นี้ บทความในรุ่นของ Microsoft Excel 5.0 และ 7.0

วิธีการใช้ฟังก์ชัน Microsoft Excel Solver ในแมโคร VBA

เมื่อต้องการใช้ฟังก์ชันเพิ่มในของ Microsoft Excel Solver ในแมโคร VBA คุณ ต้องการอ้างอิง add-in ที่จากโครงการ VBA ของสมุดงานที่ ประกอบด้วยแมโคร ถ้าคุณไม่อ้างอิง Microsoft Excel Solver add-in ของ คุณจะได้รับการ ต่อไปนี้คอมไพล์ข้อผิดพลาดเมื่อคุณพยายามเรียกใช้แมโคร:
ข้อผิดพลาดในการคอมไพล์: ย่อยได้ หรือทำงานไม่ได้กำหนดไว้
เมื่อต้องการ การอ้างอิง Microsoft Excel Solver add-in อันสำหรับแมโครในสมุดงานของคุณ ใช้ต่อไปนี้ ขั้นตอน:
  1. เปิดสมุดงานของคุณ
  2. ในการ เครื่องมือ เมนู ชี้ไปที่แมโครแล้ว คลิก Visual Basic Editor.
  3. ในการ เครื่องมือ เมนู คลิกการอ้างอิง.
  4. ในการ การอ้างอิงที่พร้อมใช้งาน รายการ คลิกเพื่อ เลือก Solver.xls กล่องกาเครื่องหมาย และจากนั้น คลิก ตกลง.

    หมายเหตุ ถ้าคุณไม่เห็น Solver.xls ในการ การอ้างอิงที่พร้อมใช้งานแสดงรายการ คลิก เรียกดู. ในการ เพิ่ม การอ้างอิง กล่องโต้ตอบ ค้นหา และเลือกแฟ้ม Solver.xla จากนั้น คลิก เปิด. โดยทั่วไปจะมีพบแฟ้ม Solver.xla ในการ โฟลเดอร์ย่อย Files\Microsoft Office\Office\Library\Solver C:\Program
คุณก็พร้อมที่จะใช้ฟังก์ชัน Microsoft Excel Solver ในการ แมโคร VBA

วิธีการออกแบบแมโคร VBA ที่สร้าง และแก้ไขรูปแบบจำลอง Microsoft Excel Solver อย่างง่าย

ถึงแม้ว่า Microsoft Excel Solver นำเสนอฟังก์ชันมาก สามแบบต่อไปนี้ ฟังก์ชันที่มีพื้นฐาน เพื่อสร้าง และแก้ไขรูปแบบจำลอง:
  • ฟังก์ชันSolverOK
  • ฟังก์ชันSolverSolve
  • ฟังก์ชันSolverFinish

ฟังก์ชัน SolverOK

ฟังก์ชันSolverOKกำหนดรูปแบบจำลอง Microsoft Excel Solver พื้นฐาน ฟังก์ชันSolverOKโดยทั่วไปคือ ฟังก์ชันแรกที่คุณจะใช้ในการสร้างแบบจำลอง Microsoft Excel Solver ของคุณ ฟังก์ชันSolverOK จะเหมือนกับการคลิก Solver ในการ เครื่องมือเมนู และจากนั้น ระบุตัวเลือกที่มีอยู่ในตัว พารามิเตอร์ solverกล่องโต้ตอบ ไวยากรณ์ของฟังก์ชันSolverOKคือต่อไปนี้:
SolverOK (SetCell, MaxMinVal, ValueOf, ByChange)
ข้อมูลต่อไปนี้อธิบายเกี่ยวกับไวยากรณ์ของฟังก์ชันSolverOK :
  • SetCellระบุเซลล์เป้าหมาย
  • MaxMinValสอดคล้องกับว่าคุณต้องการแก้ไขเซลล์เป้าหมาย สำหรับค่าสูงสุด (1), ค่าต่ำสุด (2), หรือ (3) ค่าเฉพาะ
  • ValueOfระบุค่าตรงกับเซลล์เป้าหมาย ถ้าคุณ การตั้งค่าMaxMinValเป็น 3 คุณต้องระบุอาร์กิวเมนต์นี้ ถ้าคุณตั้งค่าMaxMinVal 1 หรือ 2 คุณสามารถใส่อาร์กิวเมนต์นี้
  • ByChangeระบุเซลล์หรือช่วงของเซลล์ที่คุณต้องการที่จะถูกเปลี่ยนแปลง
รูปที่ 1 การกำหนดความสัมพันธ์ของอาร์กิวเมนต์สำหรับฟังก์ชันSolverOKด้วยการ พารามิเตอร์ในการ พารามิเตอร์ solver กล่องโต้ตอบ

รูปที่ 1 พารามิเตอร์ที่เกี่ยวข้องกับSolverOK อาร์กิวเมนต์

ยุบรูปภาพนี้ขยายรูปภาพนี้
 รูปที่ 1 พารามิเตอร์ที่เกี่ยวข้อง

		  อาร์กิวเมนต์ SolverOK


ฟังก์ชัน SolverSolve

ฟังก์ชันSolverSolveสามารถแก้รูปแบบใช้พารามิเตอร์ ที่คุณระบุไว้ ด้วยฟังก์ชันSolverOK การดำเนินการฟังก์ชันSolverSolveจะเหมือนกับ เมื่อต้องการคลิก แก้ไข ในการ พารามิเตอร์ solver กล่องโต้ตอบ ไวยากรณ์ของฟังก์ชันSolverSolveคือต่อไปนี้:
SolverSolve (UserFinish, ShowRef)
ข้อมูลต่อไปนี้อธิบายเกี่ยวกับไวยากรณ์ของฟังก์ชันSolverSolve :
  • UserFinishที่บ่งชี้ว่า คุณต้องการให้ผู้ใช้เสร็จสิ้นการแก้ไข แบบจำลอง

    เมื่อต้องการส่งกลับผลลัพธ์ที่ไม่ มีการแสดง Solver ผลลัพธ์ กล่องโต้ตอบกล่อง การตั้งค่าอาร์กิวเมนต์นี้ให้เป็น TRUE เมื่อต้องการส่งกลับผลลัพธ์ และแสดงการ ผลลัพธ์ solver กล่องโต้ตอบกล่อง การตั้งค่าอาร์กิวเมนต์นี้ เป็น FALSE
  • ShowRefระบุแมโครที่ถูกเรียกเมื่อ Microsoft Excel Solver ส่งกลับตัว การแก้ไขปัญหาระดับกลาง

    อาร์กิวเมนต์ShowRefควรใช้เฉพาะเมื่อ TRUE จะถูกส่งผ่านเป็นอาร์กิวเมนต์ของฟังก์ชันSolverOptionsStepThru

ฟังก์ชัน SolverFinish

ฟังก์ชันSolverFinishบ่งชี้ว่า สิ่งที่ต้องทำ มีผล และรายงานเพื่อสร้างหลังจากเสร็จสิ้นกระบวนการแก้ปัญหาอะไร ไวยากรณ์ของฟังก์ชันSolverFinishคือต่อไปนี้:
SolverFinish (KeepFinal, ReportArray)
ข้อมูลต่อไปนี้อธิบายเกี่ยวกับไวยากรณ์ของฟังก์ชันSolverFinish :
  • KeepFinalบ่งชี้ว่า สิ่งที่ต้องทำ ด้วยผลลัพธ์ขั้นสุดท้าย ถ้าKeepFinalเป็น 1 ค่าโซลูชันขั้นสุดท้ายถูกเก็บไว้ในเซลล์เปลี่ยน แทนค่า ถ้าKeepFinalเป็น 2 ค่าโซลูชันขั้นสุดท้ายจะถูกละทิ้ง และในอดีต ค่าจะคืนค่า
  • ReportArrayระบุอาร์เรย์ซึ่งระบุชนิดของรายงาน Microsoft Excel จะสร้างเมื่อถึงระดับการแก้ไขปัญหา ถ้าReportArrayถูกตั้งค่าเป็น 1, Microsoft Excel สร้างรายงานที่มีคำตอบ ถ้าตั้งค่าเป็น 2, Microsoft Excel สร้างรายงาน ระดับความลับ และถ้าการตั้งค่าไปยัง 3 Microsoft Excel สร้างรายงานที่มีขีดจำกัด ดูข้อมูลเพิ่มเติมเกี่ยวกับรายงานเหล่านี้ "วิธีการสร้างรายงานสำหรับการแก้ไขปัญหา"ส่วน
รูปที่ 2 ตัวเลือกผลลัพธ์ Solver Excel ของ Microsoft ที่เกี่ยวข้อง อาร์กิวเมนต์SolverFinish

ยุบรูปภาพนี้ขยายรูปภาพนี้
 รูปที่ 2 ตัวเลือกผลลัพธ์ของ solver

		  เกี่ยวข้องกับอาร์กิวเมนต์ SolverFinish


บทความนี้อธิบายวิธีการสร้างแบบจำลอง Microsoft Excel Solver อย่างง่ายได้มีการโต้ตอบ ขั้นตอนแรกคือการ สร้างแผ่นงานของคุณสำหรับรูปแบบ แผ่นงานจะประกอบด้วยบางเซลล์ข้อมูล และเซลล์อย่างน้อยหนึ่งเซลล์ที่ประกอบด้วยสูตร สูตรนี้ขึ้นอยู่บนอีก เซลล์ในแผ่นงาน หลังจากที่คุณตั้งค่าแผ่นงานของคุณ คลิก Solver ในการ เครื่องมือ เมนู ในการพารามิเตอร์ solver กล่องโต้ตอบกล่อง ระบุเซลล์เป้าหมาย ค่าที่ คุณกำลังแก้ไขสำหรับ ช่วงของเซลล์ที่จะถูกเปลี่ยนแปลง และ ข้อจำกัด คลิก แก้ไข เมื่อต้องการเริ่มกระบวนการแก้ปัญหา หลังจากที่ได้พบวิธีแก้ปัญหา Microsoft Excel Solver ผลลัพธ์ปรากฏในแผ่นงานของคุณ และจาก Excel Solver ของ Microsoft จะแสดงกล่องข้อความที่พร้อมท์ให้คุณถ้าคุณต้องการเก็บผลลัพธ์ขั้นสุดท้าย หรือ ถ้าคุณต้องการละทิ้งเหล่านั้น เมื่อคุณคลิกตัวเลือกเหล่านี้อย่างใดอย่างหนึ่ง Microsoft Excel Solver เสร็จสิ้น

รูปที่ 3 แสดงรูปแบบจำลองอย่างง่ายที่คุณสามารถสร้างได้ โดยใช้ขั้นตอนเหล่านี้

ภาพประกอบ 3 แบบจำลองอย่างง่าย: รากที่สองแบบจำลอง

ยุบรูปภาพนี้ขยายรูปภาพนี้
 ภาพประกอบ 3 A

		  แบบจำลองอย่างง่าย: รากที่สองแบบจำลอง


ในตัวอย่างนี้ เปลี่ยนแปลงเซลล์ A1 ซึ่งประกอบด้วยสูตร = A1 ^ 2 ค่าที่จะทำให้ เซลล์ A2 เท่ากับค่า 50 กล่าวอีกนัยหนึ่ง หารากที่สอง 50 มีอยู่ไม่มีข้อจำกัดในรูปแบบรากที่สอง แมโคFind_Square_Root accomplishes ต่อไปนี้:
  • จะต้องตั้งค่ารูปแบบที่จะแก้ไขค่าของเซลล์ A2 สำหรับค่าเท่ากับ 50 ด้วย เปลี่ยนค่าของเซลล์ A1
  • คุณสามารถแก้รูปแบบ
  • จะบันทึกผลลัพธ์ขั้นสุดท้ายไปยังแผ่นงานโดยไม่มี แสดง ผลลัพธ์ solver กล่องโต้ตอบ
แมโครนี้อย่างง่ายสร้างแบบจำลอง Microsoft Excel Solver และสามารถแก้ โดยไม่ต้องการใด ๆ ของผู้ใช้ดังกล่าว รหัสต่อไปนี้อธิบายถึงแมโคFind_Square_Root :
    Sub Find_Square_Root()

    ' Set up the parameters for the model.
    ' Set the target cell A2 to a value of 50 by changing cell A1.
    SolverOK SetCell:=Range("A2"), MaxMinVal:=3, ValueOf:=50, _
         ByChange:=Range("A1")

    ' Solve the model but do not display the Solver Results dialog box.
    SolverSolve UserFinish:=True

    ' Finish and keep the final results.
    SolverFinish KeepFinal:=1

    End Sub
แมโคFind_Square_Root2แมโครFind_Square_Rootรุ่นที่ได้ถูกปรับเปลี่ยนได้ ถ้าคุณใช้ฟังก์ชันบุแมโคFind_Square_Root2พร้อมท์คุณสำหรับ ค่าที่คุณต้องการแก้ไขเซลล์เป้าหมาย หลังจากที่คุณป้อนค่า แมโคFind_Square_Root2การตั้งค่าพารามิเตอร์นี้เป็นค่าของอาร์กิวเมนต์valueofSolverOKสามารถแก้ปัญหา บันทึกผลลัพธ์ในตัวแปร รากที่สอง แล้วละทิ้งการแก้ไขปัญหา และการเรียกคืนค่าในแผ่นงาน ไปยังสภาพเดิม โดยปกติแล้ว แมโคFind_Square_Root2อธิบายวิธีการที่คุณสามารถบันทึกผลลัพธ์ในอย่างน้อยหนึ่งอย่าง ตัวแปรและการคืนค่าแล้วการเปลี่ยนแปลงเซลล์กลับเป็นค่าเดิม

รหัสต่อไปนี้อธิบายถึงแมโคFind_Square_Root2 :
    Sub Find_Square_Root2()

    Dim val
    Dim sqroot

    ' Request the value for which you want to obtain the square root.
    val = Application.InputBox( _
         prompt:="Please enter the value for which you want " & _
         "to find the square root:", Type:=1)

    ' Set up the parameters for the model.
    SolverOK SetCell:=Range("A2"), MaxMinVal:=3, ValueOf:=val, _
         ByChange:=Range("A1")

    ' Do not display the Solver Results dialog box.
    SolverSolve UserFinish:=True

    ' Save the value of cell A1 (the changing cell) before you discard 
    ' the results.
    sqroot = Range("a1")

    ' Finish and discard the results.
    SolverFinish KeepFinal:=2

    ' Show the result in a message box.
    MsgBox "The square root of " & val & " is " & Format(sqroot, "0.00")

    End Sub

วิธีการสร้างรายงานสำหรับการแก้ไขปัญหา

Microsoft Excel Solver มีหลายชนิดของรายงานที่อธิบายถึงวิธีการ ผลลัพธ์ที่มีการเปลี่ยนแปลงและวิธีปิดข้อจำกัดมาเป็นค่าที่สำคัญ แต่ละรายงานอยู่บนแผ่นงานแยกต่างหากในสมุดงานของคุณ ต่อไปนี้ได้แก่ชนิดของรายงาน ที่นำเสนอจาก Excel Solver ของ Microsoft:
  • รายงานคำตอบ- รายงานคำตอบแสดงรายการเซลล์เป้าหมายและเซลล์เปลี่ยน ความสอดคล้องกันเดิมขั้นสุดท้ายค่า และ ข้อจำกัด และ ข้อมูลเกี่ยวกับข้อจำกัดหรือไม่
  • รายงานความไว- รายงานระดับความลับให้ข้อมูลเกี่ยวกับวิธีที่มีความสำคัญ โซลูชันที่มีการเปลี่ยนแปลงเล็กน้อยในสูตรสำหรับเซลล์เป้าหมาย
  • ขีดจำกัดรายงาน- รายงานขีดจำกัดแสดงรายการเซลล์เป้าหมายและเซลล์เปลี่ยน ด้วยค่าที่เกี่ยวข้อง ขีดจำกัดล่าง และด้านบน และเป้าหมาย ค่า
เมื่อต้องการสร้างรายงานสำหรับรูปแบบของคุณ อาร์เรย์ของค่าที่ระบุ สำหรับอาร์กิวเมนต์ReportArrayของฟังก์ชันSolverFinish สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ อาร์กิวเมนต์ReportArrayดู "SolverFinish (KeepFinal, ReportArray)"ส่วน ตัวอย่างเช่น ถ้าคุณต้องการสร้างรายงานสำหรับขีดจำกัด ฟังก์ชันSolverFinishในการปรับเปลี่ยนรูปแบบที่มีแมโคFind_Square_Root2ที่สร้าง และ แก้ไข แมโครเพื่อให้ปุ่มมีลักษณะคล้ายคลึงกับตัวอย่างรหัสต่อไปนี้:
    SolverFinish KeepFinal:=2, ReportArray:= Array(3)
เมื่อต้องการสร้างรายงานหลาย ๆ ปรับเปลี่ยนฟังก์ชันSolverFinish เพื่อให้ดูคล้ายกับตัวอย่างรหัสต่อไปนี้:
    SolverFinish KeepFinal:=2, ReportArray:= Array(1,2)

วิธีการใช้ฟังก์ชัน ExcelSolver ของ Microsoft ในแมโครการวนรอบ

ในหลายสถานการณ์ เป็นความคิดที่ดีเพื่อให้ Microsoft Excel Solver โดยแก้ไข เซลล์เป้าหมายสำหรับค่าหลายค่า คุณสามารถดำเนินการโดยทั่วไปนี้ โดยใช้อย่างใดอย่างหนึ่ง โครงสร้างการวนรอบ ที่มาพร้อมกับ VBA

แมโคCreate_Square_Root_Tableแสดงให้เห็นว่า Microsoft Excel Solver ฟังก์ชันในแมโครการวนรอบ Create_Square_Root_Table แมโครสร้างตารางในแผ่นงานใหม่ แทรกหมายเลขหนึ่งถึงสิบ และรากที่สองที่สอดคล้องกันของแต่ละหมายเลข แมโคCreate_Square_Root_Tableสร้างตาราง ใช้สำหรับแบบวนซ้ำเมื่อต้อง การทำซ้ำในการผ่านทางหมายเลข 1 ถึง 10 และ การแก้ไข เซลล์เป้าหมายที่อยู่ในรูปแบบรากที่สองสำหรับค่าที่ตรงกับหมายเลขของการ เกิดซ้ำ รหัสต่อไปนี้อธิบายถึงแมโคCreate_Square_Root_Table :
    Sub Create_Square_Root_Table()

    ' Add a new worksheet to the workbook.
    Set w = Worksheets.Add

    ' Put the value 2 in cell C1 and the formula =C1^2 in cell C2.
    w.Range("C1").Value = 2
    w.Range("C2").Formula = "=C1^2"

    ' A loop that will make 10 iterations, starting with the number 1, 
    ' and finishing at the number 10.
    For i = 1 To 10

        ' Set the Solver parameters that indicate that Solver should
        ' solve the cell C2 for the value of i (where i is the number
        ' of the iteration) by changing cell C1.
        SolverOk SetCell:=Range("C2"), ByChange:=Range("C1"), _
            MaxMinVal:=3, ValueOf:=i

        ' Do not display the Solver Results dialog box.
        SolverSolve UserFinish:=True

        ' Save the value of i in column A and the results of the 
        ' changing cell in column B.
        w.Cells(i, 1) = i
        w.Cells(i, 2) = Range("C1")

        ' Finish and discard the final results.
        SolverFinish KeepFinal:=2

    Next

    ' Clear the range C1:C2
    w.Range("C1:C2").Clear

    End Sub

แมโคCreate_Square_Root_Tableสร้างตารางที่แสดงในรูปที่ 4

รูปที่ 4 ผลผลิตที่สร้างขึ้น โดยใช้แมโคCreate_Square_Root_Table

ยุบรูปภาพนี้ขยายรูปภาพนี้
รูปที่ 4 ผลผลิตที่สร้างขึ้นโดยการ

		  แมโค Create Square Root Table


วิธีการทำงานกับข้อจำกัด

ข้อจำกัดจะมีข้อจำกัดเกี่ยวกับเนื้อหาของอย่างน้อยหนึ่งอย่าง เซลล์ แบบจำลองสามารถมีข้อจำกัดหลายอย่าง น้อยหนึ่ง ชุดข้อจำกัดมีการ การตั้งค่าของอสมการหรือชุดของ equalities ที่เอาออกการผสมของค่า สำหรับตัวแปรการตัดสินใจของคุณจากการแก้ไขปัญหา ตัวอย่างเช่น อาจเป็นข้อจำกัด ต้องใช้เซลล์หนึ่งมีค่ามากกว่าศูนย์ และประกอบด้วยเซลล์อื่นเท่านั้น ค่าเลขจำนวนเต็ม

รูปแบบจำลองของรากที่สองที่เราได้กล่าวถึงจนถึงจุดนี้ มีแบบจำลองอย่างง่ายที่ไม่ประกอบด้วยข้อจำกัดใด ๆ รูปที่ 5 แสดงให้เห็น แบบจำลองที่ใช้ข้อจำกัด วัตถุประสงค์ของรูปแบบจำลองนี้คือการ ค้นหาเหมาะสม ชุดของผลิตภัณฑ์สำหรับกำไรสูงสุด

รูปที่ 5 ผลิตภัณฑ์รวม มี diminishing กำไรเบื้องต้น

ยุบรูปภาพนี้ขยายรูปภาพนี้
รูปที่ 5 รวมเข้ากับผลิตภัณฑ์

		  กำไรเบื้องต้น diminishing


ตัวอย่างเช่น ถ้าบริษัทผลิตทีวี วิทยุ สเตอริโอ และลำโพง และจะใช้ชิ้นส่วนพบโดยทั่วไปของวัสดุสำนักงานในการใช้พลังงาน ลำโพง cones และอื่น ๆ ส่วนต่าง ๆ ในการจัดหาวัสดุที่จำกัดได้ เป้าหมายของคุณคือ กำหนดผสมปฏิมากที่สุดของผลิตภัณฑ์ที่จะสร้าง กำไรของคุณต่อหน่วย ลดกับไดรฟ์ข้อมูลได้เนื่องจากจำเป็นต้องโหลดตอบแทนจูงใจราคาเพิ่มเติม ช่องทางการแจกจ่าย เลขชี้กำลังส่งกลับ diminishing เป็น 0.9 เลขชี้กำลังนี้คือ ใช้ในการคำนวณกำไรตามผลิตภัณฑ์ที่อยู่ในช่วง G11:I11

ของคุณ วัตถุประสงค์ที่จะค้นหากำไรสูงสุด (เซลล์ G14) ค่าที่คุณจะ การเปลี่ยนแปลงเพื่อหากำไรสูงสุดมีจำนวนของหน่วยที่คุณสร้าง ที่ ช่วง G9:G11 หมายถึงเซลล์เปลี่ยนในรุ่นนี้ ข้อจำกัดของคุณเท่านั้น มีหมายเลขของส่วนที่คุณใช้ไม่เกินหมายเลขของส่วนที่คุณได้ คงคลังคงเหลือ ด้วย Microsoft Excel Solver ข้อจำกัดนี้ปรากฏเป็น E3:E7<=B3:B7. if="" you="" were="" to="" build="" this="" microsoft="" excel="" solver="" model="" interactively,="" the="" microsoft="" excel="" solver="" parameters="" would="" look="" similar="" to="" those="" that="" are="" in="" figure="" 6.=""></=B3:B7.>

รูปที่ 6 พารามิเตอร์ Solver Excel ของ Microsoft สำหรับการ ผลิตภัณฑ์รวมกับรุ่น Diminishing กำไรเบื้องต้น

ยุบรูปภาพนี้ขยายรูปภาพนี้
รูปที่ 6 พารามิเตอร์ Microsoft Excel Solver สำหรับ

		  ผลิตภัณฑ์รวมกับรุ่น Diminishing กำไรเบื้องต้น


เมื่อต้องการสร้าง และแก้ไขผลิตภัณฑ์รวมที่ มีแบบจำลอง Diminishing กำไรเบื้องต้น คุณจะใช้เป็น ฟังก์ชันใหม่ ฟังก์ชันSolverAddนอกเหนือจากฟังก์ชัน VBA Solver ของ Microsoft Excel ที่ได้ อธิบายไว้ก่อนหน้านี้ ฟังก์ชันSolverAddเพิ่มข้อจำกัดกับรูปแบบ การดำเนินการฟังก์ชันSolverAddจะเหมือนกับการคลิก เพิ่ม ในการ พารามิเตอร์ solver กล่องโต้ตอบ ที่ ฟังก์ชันSolverAddมีไวยากรณ์ต่อไปนี้:
SolverAdd (CellRef ความสัมพันธ์ FormulaText)
ข้อมูลต่อไปนี้อธิบายเกี่ยวกับไวยากรณ์ของฟังก์ชันSolverAdd :
  • CellRefการอ้างอิงเซลล์อย่าง น้อยหนึ่งที่ด้านซ้ายของตัว ข้อจำกัด
  • ความสัมพันธ์ที่มีความสัมพันธ์ทางคณิตศาสตร์ระหว่างด้านซ้ายและด้านขวาของ ข้อจำกัดในการ
  • ความสัมพันธ์สามารถเป็นค่าระหว่าง 1 ถึง 5 ดังในตัวอย่างต่อไปนี้:
    • ค่า 1 มีค่าน้อยกว่า หรือเท่ากับ(<>
    • Vaue 2 จะเท่ากับ (=)
    • ค่า 3 เป็นมีค่ามากกว่า หรือเท่ากับ (> =)
    • ค่า 4 เป็นจำนวนเต็ม
    • ค่าของ 5 คือ ไบนารี (ค่าเป็นศูนย์หรือหนึ่ง)
  • FormulaTextการอ้างอิงเซลล์อย่าง น้อยหนึ่งที่ด้านขวาของตัว constraint.* *
** เมื่อคุณระบุช่วงของเซลล์สำหรับอาร์กิวเมนต์ของฟังก์ชันSolverAddFormulaTextโปรดสังเกตว่า การอ้างอิง มีค่า น้อย โดยทั่วไปแล้ว คุณต้องระบุแบบสัมบูรณ์ การอ้างอิงสำหรับอาร์กิวเมนต์FormulaText ก็อย่างไรก็ตาม ถ้าคุณไม่ระบุการอ้างอิงแบบสัมพัทธ์สำหรับอาร์กิวเมนต์FormulaTextตระหนักว่า การอ้างอิงจะสัมพันธ์กับเซลล์เป้าหมายและเซลล์ที่ใช้งานไม่

หมายเหตุ ใน Microsoft Excel เวอร์ชั่น 5.0 และ 7.0 ใช้สัญลักษณ์แบบ R1C1 เมื่อคุณระบุเซลล์หรือช่วงของเซลล์ ด้วยอาร์กิวเมนต์FormulaText ในทางตรงข้าม ใน Microsoft Excel 97 ใช้ลักษณะ A1 สัญลักษณ์ที่ระบุในอาร์กิวเมนต์FormulaText

รูปที่ 7 เขตข้อมูลที่เกี่ยวข้องกับการ อาร์กิวเมนต์SolverAdd

ยุบรูปภาพนี้ขยายรูปภาพนี้
 รูปที่ 7 เขตข้อมูลที่เกี่ยวข้องด้วย

		  อาร์กิวเมนต์ SolverAdd


แมโคMaximum_Profitที่สร้างแบบจำลองสำหรับผลิตภัณฑ์รวมกับ Diminishing แบบจำลองการส่งคืน แมโครนี้ดำเนินการฟังก์ชันหรืออาร์กิวเมนต์ดังต่อไปนี้:

  • ฟังก์ชันSolverOKตั้งค่าเซลล์เป้าหมายสำหรับค่าสูงสุด และ ระบุเซลล์เปลี่ยนแปลง
  • ฟังก์ชันSolverAddเพิ่มข้อจำกัดกับรูปแบบ
  • ฟังก์ชันSolverSolveค้นหาวิธีแก้ไขปัญหาโดยไม่แสดงผลลัพธ์ solver กล่องโต้ตอบ
  • ฟังก์ชันSolverFinishส่งกลับผลลัพธ์ขั้นสุดท้ายไปยังแผ่นงาน
รหัสต่อไปนี้อธิบายการสำหรับแมโคMaximum_Profit :
    Sub Maximum_Profit()

    ' Set up the parameters for the model.
    ' Determine the maximum value for the sum of profits in cell G14
    ' by changing the number of units to build in cells G9:I9.
    Solverok setcell:=Range("G14"), maxminval:=1, _
        bychange:=Range("G9:I9")

    ' Add the constraint for the model. The only constraint is that the
    ' number of parts used does not exceed the parts on hand-- 
    ' E3:E7<=B3:B7
    SolverAdd CellRef:=Range("E3:E7"), Relation:=1, _
        FormulaText:="$B$3:$B$7"

    ' Do not display the Solver Results dialog box.
    SolverSolve UserFinish:=True

    ' Finish and keep the final results.
    SolverFinish KeepFinal:=1

    End Sub

หมายเหตุ ใน Microsoft Excel เวอร์ชั่น 5.0 และ 7.0 ใช้สัญลักษณ์แบบ R1C1 เมื่อคุณระบุเซลล์หรือช่วงของเซลล์ ด้วยอาร์กิวเมนต์FormulaText ในทางตรงข้าม ใน Microsoft Excel 97 ใช้ลักษณะ A1 สัญลักษณ์ที่ระบุในอาร์กิวเมนต์FormulaText

เมื่อคุณเรียกใช้แมโครMaximum_Profit , Microsoft Excel Solver จะค้นหาวิธีแก้ไขปัญหาของการสร้างชุดรายการโทรทัศน์ 160, 200 วิทยุสเตอริโอ และลำโพง 80 สำหรับกำไรสูงสุดของ $ 14,917 ดอลลาร์

วิธีการเปลี่ยน และลบข้อจำกัด

ข้อจำกัดในรุ่นของคุณจะสามารถเปลี่ยนโดยทางโปรแกรม หรือ ลบ ข้อจำกัดจะถูกระบุ โดยอาร์กิวเมนต์ของพวกเขาCellRefและความสัมพันธ์กัน

เมื่อต้องการเปลี่ยนโปรแกรมที่มีอยู่แล้ว ข้อจำกัด ใช้ฟังก์ชันSolverChange ต่อไปนี้คือ ไวยากรณ์สำหรับSolverChange ฟังก์ชัน:
SolverChange (CellRef ความสัมพันธ์ FormulaText)
หมายเหตุว่า เป็นอาร์กิวเมนต์สำหรับฟังก์ชันSolverChange เหมือนกับที่คุณใช้กับฟังก์ชันSolverAdd

ถ้าคุณต้องการ เมื่อต้องการเปลี่ยนข้อจำกัดในผลิตภัณฑ์รวมที่มีแบบจำลองส่งกลับ Diminishing คุณ จะต้องใช้ฟังก์ชันSolverChange ตัวอย่างเช่น ในขณะนี้ข้อจำกัดที่ มีระบุคือ หมายเลขของส่วนที่ใช้มีค่าน้อยกว่า หรือเท่ากับ จำนวนชิ้นส่วนคงคลังคงเหลือ (E3:E7<= b3:b7).="" if="" you="" want="" to="" change="" this="" constraint="" so="" that="" the="" number="" of="" parts="" used="" is="" less="" than="" or="" equal="" to="" the="" number="" of="" parts="" projected="" (number="" of="" parts="" on="" hand="" plus="" number="" of="" parts="" ordered).="" this="" new="" constraint="" would="" look="" like="" e3:e7=""></=><= d3:d7.="" the="" following="" macro="" would="" change="" the="" existing="" constraint=""></=><=B3:B7 to="" e3:e7=""></=B3:B7><= d3:d7="" and="" solve="" for="" a="" solution.=""></=>

รหัสต่อไปนี้อธิบายถึงแมโคChange_Constraint_and_Solve :
    Sub Change_Constraint_and_Solve()

    ' Change the constraint.
    SolverChange CellRef:=Range("E3:E7"), Relation:=1, _
       FormulaText:="$D$3:$D$7"

    ' Return the results and display the Solver Results dialog box.
    SolverSolve UserFinish:=False

    End Sub

เนื่องจากข้อจำกัดจะถูกระบุ โดยCellRefและอาร์กิวเมนต์ความสัมพันธ์คุณสามารถเปลี่ยนเฉพาะอาร์กิวเมนต์FormulaTextเป็นข้อบังคับ โดยการใช้ฟังก์ชันSolverChange ถ้าCellRefและค่าความสัมพันธ์ไม่ตรงกับข้อจำกัดที่มีอยู่ คุณต้องลบ ข้อจำกัด และเพิ่มข้อจำกัดถูกปรับเปลี่ยน เมื่อต้องการลบข้อจำกัด ใช้ ฟังก์ชันSolverDelete ไวยากรณ์ของฟังก์ชันSolverDeleteคือต่อไปนี้:

SolverDelete (CellRef ความสัมพันธ์ FormulaText)

หมายเหตุว่า เป็นอาร์กิวเมนต์สำหรับฟังก์ชันSolverDelete เหมือนกับที่คุณใช้กับSolverAddและSolverChangeทำงาน

แมโครดังต่อไปนี้แสดงให้เห็นถึงวิธีการลบ และเพิ่มข้อจำกัดในการ ในตัวอย่างนี้ เอาแมโคChange_Constraint_and_Solve2 E3:E7 ข้อจำกัด<=B3:B7 from="" the="" product="" mix="" with="" diminishing="" returns="" model="" and="" adds="" a="" new="" constraint.="" the="" new="" constraint="" is="" just="" a="" modification="" of="" the="" original="" constraint,="" where="" the="" left="" and="" right="" sides="" of="" the="" constraint="" are="" reversed.=""></=B3:B7>

รหัสต่อไปนี้อธิบายถึงแมโคChange_Constraint_and_Solve2 :
    Sub Change_Constraint_and_Solve2()

    ' Reverse the left and right sides of the constraint...
    ' Delete the constraint E3:E7<=B3:B7 and add the
    ' constraint B3:B7>=E3:E7.
    SolverDelete CellRef:=Range("E3:E7"), Relation:=1, _
        FormulaText:="$B$3:$B$7"
    SolverAdd CellRef:=Range("B3:B7"), Relation:=3, _
        FormulaText:="$E$3:$E$7"
    
    ' Return the results and display the Solver Results dialog box.
    SolverSolve UserFinish:=False
    
    End Sub

หมายเหตุ ใน Microsoft Excel เวอร์ชั่น 5.0 และ 7.0 ใช้สัญลักษณ์แบบ R1C1 เมื่อคุณระบุเซลล์หรือช่วงของเซลล์ ด้วยอาร์กิวเมนต์FormulaText ในทางตรงข้าม ใน Microsoft Excel 97 ใช้ลักษณะ A1 สัญลักษณ์ที่ระบุในอาร์กิวเมนต์FormulaText

วิธีการที่โหลด และบันทึกรุ่นของคุณ

เมื่อคุณบันทึกสมุดงานของคุณ พารามิเตอร์สุดท้ายที่คุณ ระบุในการ พารามิเตอร์ solver กล่องโต้ตอบจะถูกบันทึกด้วย สมุดงาน ดังนั้น เมื่อคุณเปิดสมุดงาน พารามิเตอร์คือแบบ เช่นเดียวกับเมื่อคุณบันทึกครั้งสุดท้ายที่สมุดงาน

คุณสามารถกำหนดได้ ปัญหาที่มากกว่าหนึ่งสำหรับแผ่นงาน แต่ละปัญหาขึ้นเป็นของเซลล์ และ ข้อจำกัดที่คุณป้อนในการ พารามิเตอร์ solver และ ตัวเลือก solver กล่องโต้ตอบ เนื่องจากปัญหาล่าสุดเท่าที่จะถูกบันทึกไว้ด้วย แผ่นงาน คุณจะสูญเสียปัญหาอื่น ๆ ทั้งหมดยกเว้นว่าคุณบันทึกอย่างชัดเจน เหล่านั้น เมื่อต้องบันทึกเอกสารนั้น คลิก บันทึกรูปแบบ ในการ Solver ตัวเลือก กล่องโต้ตอบ ในทำนองเดียวกัน เมื่อคุณต้องการคืนค่าก่อนหน้านี้ บันทึกพารามิเตอร์ คลิก โหลดโมเดล ในการ Solver ตัวเลือก กล่องโต้ตอบ

แบบจำลอง solver ถูกเก็บไว้ในช่วงของ เซลล์บนแผ่นงาน เซลล์แรกในช่วงประกอบด้วยสูตรสำหรับการ เซลล์เป้าหมาย เซลล์ที่สองในช่วงประกอบด้วยสูตรที่ระบุ เซลล์เปลี่ยนในแบบจำลอง เซลล์สุดท้ายในช่วงประกอบด้วยอาร์เรย์ ที่แสดงถึงตัวเลือกการตั้งค่าในการ ตัวเลือก solver กล่องโต้ตอบ ที่เหมาะสม เซลล์อยู่ระหว่างสองเซลล์และเซลล์สุดท้ายที่ประกอบด้วยสูตร ที่แสดงถึงข้อจำกัดในรูปแบบ

รูปที่ 8 แสดงเป็น รูปแบบจำลองสำหรับการจัดกำหนดการของพนักงาน สมมติว่า คุณทำงานเล็ก ๆ ผู้ผลิต ตารางนี้แสดงอัตราต่อชั่วโมงของพนักงานแต่ละค่าจ้าง หมายเลข ชั่วโมง จะมีการจัดกำหนดการ และจำนวนหน่วยที่คาดการณ์ไว้ที่พนักงานแต่ละคนสามารถ ผลิตในหนึ่งชั่วโมง เป้าหมายของคุณคือเพื่อให้ ตรงกับโควต้าสำหรับหมายเลขของ หน่วยที่ผลิตในขณะที่การลดต้นทุนของค่าแรง

รูปที่ 8 พนักงาน โหมดการจัดกำหนดการ
l
ยุบรูปภาพนี้ขยายรูปภาพนี้
 รูปที่ 8 การจัดกำหนดการของพนักงาน

		  แบบจำลอง


สองปัจจัยเพิ่มเติม (หรือข้อจำกัด) ที่คุณต้องการ พิจารณามีหมายเลขต่ำสุด/สูงสุดของชั่วโมงที่พนักงานแต่ละคนสามารถทำงาน และ หมายเลขของหน่วยที่คุณต้องการในการผลิต ถ้ามีการระบุสัปดาห์ คุณจำเป็น ในการผลิต 3975 หน่วยและคุณต้องพนักงานแต่ละคนในการทำงานระหว่าง 30 และ 45 ชั่วโมง พารามิเตอร์ Microsoft Excel Solver จะปรากฏขึ้นเหมือนกับที่กำหนดไว้ในต่อไปนี้ ตาราง:

ยุบตารางนี้ขยายตารางนี้
พารามิเตอร์ช่วงของเซลล์คำอธิบาย
เซลล์เป้าหมาย $ D $ 12 ต้นทุนแรงงาน
เซลล์ที่เปลี่ยนแปลง $ C $ 2: $ C $ 8 ชั่วโมงทำงานต่อ พนักงาน
ข้อจำกัด $ C $ 2: $ C $ 8<=></=> ค่าสูงสุด ชั่วโมงสำหรับพนักงานแต่ละ 45 อยู่
$ C $ 2: $ C $ 8 > = 30 ชั่วโมงต่ำสุดต่อ พนักงานคือ 35
G $ $ 12 = 3975 จำนวนของหน่วยคือ 3975


เป้าหมายของคุณจะหาค่าต้นทุนแรงงานที่ดีที่สุดในการ ข้อมูลพื้นฐานรายสัปดาห์ เพื่อบันทึกแต่ละรูปแบบรายสัปดาห์ และสามารถโหลดสัปดาห์ใด ๆ รูปแบบเมื่อคุณจำเป็น

ในแมโคร พารามิเตอร์ Microsoft Excel Solver สำหรับแบบจำลอง คุณสามารถบันทึก และโหลด โดยใช้SolverSaveและSolverLoadทำงาน ตามลำดับ SolverSaveและSolverLoadทำงานได้ต่อไปนี้ ไวยากรณ์:

SolverSave (SaveArea)

SolverLoad (LoadArea)

SolverSaveและSolverLoadฟังก์ชันแต่ละอาร์กิวเมนต์เดียวเท่านั้นSaveAreaและ ได้LoadAreaอาร์กิวเมนต์ตามลำดับ อาร์กิวเมนต์เหล่านี้ระบุช่วงบนแผ่นงาน ที่เก็บข้อมูลของรูปแบบ

แมโคNew_Employee_Scheduleต่อไปนี้ แสดงให้เห็นวิธีการ เพื่อสร้าง แก้ไข และเมื่อต้อง การบันทึกแบบจำลอง ในการป้อนข้อมูลของผู้ใช้ ถามผู้ใช้ที่จะจัดหาวันที่ของรูปแบบ จำนวน หน่วยการผลิต และจำนวนชั่วโมงสำหรับพนักงานแต่ละระดับต่ำสุด และสูงสุด จากนั้นใช้ข้อมูลเหล่านี้เพื่อสร้างแบบจำลอง รูปแบบจะแก้ไขได้แล้ว บันทึกไว้กับผู้ใช้ป้อนข้อมูล

รหัสต่อไปนี้อธิบายถึงแมโคNew_Employee_Schedule :
    Sub New_Employee_Schedule()
    
    ' Prompt the user for the date of the model, the units to produce,
    ' and the maximum and minimum number of hours per employee.
    ModelDate = Application.InputBox( _
       Prompt:="Date of Model:", Type:=2)
    Units = Application.InputBox( _
       Prompt:="Projected Number of Units:", Type:=1)
    MaxHrs = Application.InputBox( _
       Prompt:="Maximum Number of Hours Per Employee:", Type:=1)
    MinHrs = Application.InputBox( _
       Prompt:="Minimum Number of Hours Per Employee:", Type:=1)
    
    ' Clear any previous Solver settings.
    SolverReset
    
    ' Set the target cell, D12, to a minimum value by changing
    ' the range, C2:C8.
    SolverOk SetCell:=Range("$D$12"), MaxMinVal:=2, _
       ByChange:=Range("C2:C8")
    
    ' Add the constraint that number of hours worked <= MaxHrs.
    SolverAdd CellRef:=Range("C2:C8"), Relation:=1, FormulaText:=MaxHrs
    
    ' Add the constraint that number of hours worked >=MinHrs.
    SolverAdd CellRef:=Range("C2:C8"), Relation:=3, FormulaText:=MinHrs
    
    ' Add the constraint that number of units produced = Units.
    SolverAdd CellRef:=Range("G12"), Relation:=2, FormulaText:=Units
    
    ' Solve the model and keep the final results.
    SolverSolve UserFinish:=True
    SolverFinish KeepFinal:=1
    
    ' Save the input values for ModelDate, MaxHrs, MinHrs, and Units
    ' in columns I:L.
    Set ModelRange = Range("I2:R2").CurrentRegion.Offset( _
       Range("I2:R2").CurrentRegion.Rows.Count).Resize(1, 1)
    ModelRange.Resize(1, 4) = Array("'" & Format(ModelDate, "m/d/yy"), _
       Units, MaxHrs, MinHrs)
    
    ' Save the model parameters to the range M:R in the worksheet.
    SolverSave SaveArea:=ModelRange.Offset(, 4).Resize(1, 6)
    
    End Sub
หมายเหตุ ใน Microsoft Excel เวอร์ชั่น 5.0 และ 7.0 ใช้สัญลักษณ์แบบ R1C1 เมื่อคุณระบุเซลล์หรือช่วงของเซลล์ ด้วยอาร์กิวเมนต์FormulaText ในทางตรงข้าม ใน Microsoft Excel 97 ใช้ลักษณะ A1 สัญลักษณ์ที่ระบุในอาร์กิวเมนต์FormulaText

รูปที่ 9 แสดงให้เห็นถึงวิธีการบันทึกแบบจำลอง ข้อมูลปรากฏบนแผ่นงาน

รูปที่ 9 ข้อมูลรูปแบบ ที่จะถูกบันทึก โดยแมโค New_Employee_Schedule

ยุบรูปภาพนี้ขยายรูปภาพนี้
รูปที่ 9 ข้อมูลในรูปแบบที่ถูกบันทึกไว้

		  โดยแมโค New Employee Schedule


แมโคNew_Employee_Scheduleจะบันทึกแต่ละรูปแบบใหม่ไปยังแผ่นงาน แมโคLoad_Employee_Scheduleสามารถโหลดอย่างใดอย่างหนึ่งเหล่านี้รุ่นที่บันทึกไว้ แสดงกล่องโต้ตอบแมโคร ผู้ใช้สำหรับแบบจำลองที่จะโหลด และคอลัมน์การค้นหาฉันสำหรับวันแบบจำลอง ถ้า วันแบบจำลองพบ แมโครLoad_Employee_Scheduleโหลดรูปแบบที่สอดคล้องกัน แก้ไข และจากนั้นจะผลลัพธ์ขั้นสุดท้าย

รหัสต่อไปนี้อธิบายถึงแมโคNew_Employee_Schedule:
    Sub Load_Employee_Schedule()
    
    ' Prompt for the date of the model. 
    ModelDate = Application.InputBox( _
       Prompt:="Date of Model to Load:", Type:=2)
    
    ' Locate the date in column I.
    Set DateRange = Range("I2").CurrentRegion.Resize(, 1)
    r = Application.Match(ModelDate, DateRange, 0)
    
    If IsError(r) Then
        ' Display a message if the model date is not found
        MsgBox "Cannot find a model with the date " & ModelDate
    Else
        ' If the model date is found, load the model into Solver,
        ' solve the model, and keep the final results.
        SolverLoad LoadArea:=DateRange.Offset(r - 1, 4).Resize(1, 6)
        SolverSolve UserFinish:=True
        SolverFinish KeepFinal:=1
    End If
    
    End Sub
แมโคNew_Employee_Scheduleแนะนำฟังก์ชันSolverResetSolverReset ฟังก์ชันที่สามารถใช้ได้เมื่อต้องการลบเซลล์ที่เลือกและข้อจำกัดในทุก พารามิเตอร์ solver กล่องโต้ตอบและ การตั้งค่าทั้งหมดในการตั้งค่าใหม่ มีฟังก์ชันSolverReset อาร์กิวเมนต์นี้

วิธีการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Solver Excel ของ Microsoft

ทรัพยากรต่อไปนี้ให้ข้อมูลเกี่ยวกับวิธีการใช้จาก Excel Solver ของ Microsoft เพิ่มใน

  • สำหรับความช่วยเหลือเกี่ยวกับข้อความเฉพาะ solver ดูFrontline ระบบ.
  • ดูคำแนะนำในการสร้างอ่านได้ รูปแบบที่สามารถจัดการได้ง่ายFrontline ระบบ.
  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Solver ที่จำกัดสำหรับข้อจำกัด และ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
    75714ขีดจำกัดของ solver สำหรับข้อจำกัด
  • สำหรับตัวอย่างต่าง ๆ ที่ใช้ Solver Excel Microsoft ที่เพิ่มเข้าใน Microsoft Excel ดูแฟ้มตัวอย่าง Solvsamp.xls
  • ต่อไปนี้คือ ตำแหน่งเริ่มต้นของแฟ้มตัวอย่างที่มาพร้อมกับ Microsoft Excel 97:
    \Program Files\Microsoft Office\Office\Examples\Solver\SolvSamp.xls
  • ต่อไปนี้คือ ตำแหน่งเริ่มต้นของแฟ้มตัวอย่างที่มาพร้อมกับ Microsoft Excel 7.0:
    \MSOffice\Excel\Examples\Solver\SolvSamp.xls
  • ต่อไปนี้คือ ตำแหน่งเริ่มต้นของแฟ้มตัวอย่างที่มาพร้อมกับ Microsoft Excel 5.0:
    \Excel\Examples\Solver\SolvSamp.xls

วิธีการเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริทึมและวิธีการที่ใช้ โดย Solver Excel ของ Microsoft

ใช้การไล่ระดับสีลด Generalized Solver Excel ของ Microsoft รหัสการปรับให้เหมาะสมไม่ใช่เชิงเส้น (GRG2) ที่ได้รับการพัฒนา โดย Leon Lasdon มหาวิทยาลัยของ การยังเท็กซัสที่ Austin Allan Waren มหาวิทยาลัยรัฐ Cleveland และ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึมที่ใช้ โดย Microsoft Excel Solver ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
82890ใช้ solver generalized ลดลง


ปัญหาเชิงและจำนวนเต็มที่ใช้เมธอดมเพล็กซ์ มีขอบเขตบนตัวแปร และวิธีสาขาผูกกับ นำมาใช้ด้วย John Watson และ Dan Fylstra, Frontline ระบบ Inc. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ กระบวนการแก้ปัญหาภายในที่ใช้ โดย Solver ผู้ติดต่อ:

Frontline Systems, Inc.
P.O. Box 4288
Incline Village, NV 89450-4288 
(702) 831-0300
Web site: http://www.frontsys.com
Electronic mail: info@frontsys.com 


สิ่งที่เลือกจาก Solver ของ Microsoft Excel รหัสของโปรแกรมที่มีลิขสิทธิ์ 1990, 1991, 1992 และ 1995 โดยระบบ Frontline ส่วน Inc. จะ 1989 ลิขสิทธิ์ โดยวิธี Inc. Optimal

หมายเหตุ ที่ Microsoft Excel Solver add-in ที่ถูกกล่าวถึงในบทความนี้ไว้ "ตามที่เป็นอยู่" และเราทำไม่ รับประกันว่า จะสามารถใช้ในสถานการณ์ทั้งหมด ถึงแม้ว่าสนับสนุนของ Microsoft ผู้เชี่ยวชาญด้านสามารถช่วยในการทำการติดตั้งและฟังก์ชันที่มีอยู่นี้ add-in ที่พวกเขาจะไม่ปรับเปลี่ยน add-in เพื่อให้ฟังก์ชันการทำงานใหม่ที่

มีการรับประกัน ซอฟต์แวร์ให้ไว้ "ตาม-คือ, " โดยไม่มีการรับประกันใด ๆ และการใช้งานผลิตภัณฑ์ซอฟต์แวร์นี้คือความน่าเชื่อถือ

คุณสมบัติ

หมายเลขบทความ (Article ID): 843304 - รีวิวครั้งสุดท้าย: 21 มีนาคม 2556 - Revision: 4.0
ใช้กับ
  • Microsoft Excel 97 Standard Edition
Keywords: 
kbhowto kbmacroexample kberrmsg kbaddin kbvba kbprogramming kbinfo kbmt KB843304 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:843304
การปฏิเสธความรับผิดชอบในเนื้อหาของ KB ที่จะไม่มีการปรับปรุงอีกต่อไป
บทความนี้กล่าวถึงผลิตภัณฑ์ที่ Microsoft ไม่มีการสนับสนุนอีกต่อไป เนื้อหาของบทความจึงมีการนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com