ช่วย VBA ให้ด้วยครับ
Posted: Sat Jan 26, 2013 7:26 pm
วิธีใช้งานดังนี้
1 เข้าไปที่ชีท Calculation
2 คลิกโซน 1 แล้วเลือกลูกค้า พร้อมกับ ใส่น้ำหนักที่ลูกค้าต้องการ
กรณีทดสอบนี้ให้เลือกตั้งแต่ชื่อมาสเตอร์โปร ถึงสปริง (เพราะข้อมูลมีสำหรับทดสอบแค่นั้น) เลือกลูกค้าแต่ละรายให้กดคำว่าเพิ่ม
3 เมื่อเลิกลูกค้าได้ครบแล้วให้กำปุ่ม ค้นหาระยะทาง
4 หน้าต่างจะเด้งไปที่ชีท Calculation 2 กดกากบาทเพื่อปิดฟอร์มล
5 กดปุ่มระยะทางประหยัดเพื่อเปลี่ยนค่าในเซลล์จากสูตรเป็นตัวเลข
6 กดปุ่มเลือกรถบรรทุกที่ใช้ได้ ทำการเลือกรถมา 1 คัน แล้วปิดฟอร์ม
7 กดปุ่มจัดรถขนส่ง โปรแกรมจะทำการหาค่าMaxบนตารางระยะทางแบบประหยัด (สีเขียวอ่อน) เมื่อได้ค่าMax จะให้ลบค่าMaxทิ้ง ให้ดูว่าช่องที่มีค่าMaxตรงกับชื่อลูกค้ารายใดบนหัวตาราง(แถว1ตั้งแต่Kเป็นต้นไป) และซ้ายมือของตาราง(คอลัมJสีชมพู) ให้ชื่อทั้งสองไปเทียบหาน้ำหนักที่ชีทCalculation คอลัมC เอาน้ำหนักของสองลูกค้ามาบวกกัน น้ำหนักลูกค้า 2รายบวกกันน้อยกว่าค่าของคอลัมF2ชีทCalculation2 ให้เอาน้ำหนักของลูกค้าทั้งสองไปลบกับคอลัมF2ชีทCalculation2
ค่าMaxตรงกับลูกค้ารายไหนให้ลบชื่อนั้นทิ้งหรือให้ค่าในเซลล์เป็น0เพื่อจะได้ไม่ต้องมีการจับคู่หาน้ำหนัก เช่น ถ้าตรงกับกาญจนาโลหะการด้านซ้าย และตรงกับเอสวีด้านบน ให้ลบชื่อ กาญจนาโลหการที่คอลัมJและลบเอสวีที่คอลัมJด้วย และให้ลบชื่อ กาญจนาโลหการที่แถว1และลบเอสวีที่แถว1ด้วย แล้วเอาเลขทะเบียนรถจากคอลัมB2 ไปใส่ในคอลัมH ให้ตรงกับช่องชื่อลูกค้าที่หายไป ถ้านอกเหนือเงื่อนไขดังกล่าว คือไม่มีอะไรเกิดขึ้น
ให้กดปุ่มจนกว่าค่าตัวเลขในตารางหายไปหมด แล้วจึงกดเลือกรถคันใหม่ ทำแบบนี้ไปเรื่อยๆจนกว่าจะจัดรถได้ทุกลูกค้า
ปัญหาคือ
1โปรแกรมไม่ยอมเพิ่มรถให้ลูกค้าสุดท้ายของรถที่สามารถบรรทุกได้
2 ลูกค้าที่ได้รับการจัดรถนั้น บนหัวตาราง และซ้ายมือของตาราง ไม่ยอมเป็น0
ผมต้องแก้ไขยังไงครับ
ขอบคุณครับ
1 เข้าไปที่ชีท Calculation
2 คลิกโซน 1 แล้วเลือกลูกค้า พร้อมกับ ใส่น้ำหนักที่ลูกค้าต้องการ
กรณีทดสอบนี้ให้เลือกตั้งแต่ชื่อมาสเตอร์โปร ถึงสปริง (เพราะข้อมูลมีสำหรับทดสอบแค่นั้น) เลือกลูกค้าแต่ละรายให้กดคำว่าเพิ่ม
3 เมื่อเลิกลูกค้าได้ครบแล้วให้กำปุ่ม ค้นหาระยะทาง
4 หน้าต่างจะเด้งไปที่ชีท Calculation 2 กดกากบาทเพื่อปิดฟอร์มล
5 กดปุ่มระยะทางประหยัดเพื่อเปลี่ยนค่าในเซลล์จากสูตรเป็นตัวเลข
6 กดปุ่มเลือกรถบรรทุกที่ใช้ได้ ทำการเลือกรถมา 1 คัน แล้วปิดฟอร์ม
7 กดปุ่มจัดรถขนส่ง โปรแกรมจะทำการหาค่าMaxบนตารางระยะทางแบบประหยัด (สีเขียวอ่อน) เมื่อได้ค่าMax จะให้ลบค่าMaxทิ้ง ให้ดูว่าช่องที่มีค่าMaxตรงกับชื่อลูกค้ารายใดบนหัวตาราง(แถว1ตั้งแต่Kเป็นต้นไป) และซ้ายมือของตาราง(คอลัมJสีชมพู) ให้ชื่อทั้งสองไปเทียบหาน้ำหนักที่ชีทCalculation คอลัมC เอาน้ำหนักของสองลูกค้ามาบวกกัน น้ำหนักลูกค้า 2รายบวกกันน้อยกว่าค่าของคอลัมF2ชีทCalculation2 ให้เอาน้ำหนักของลูกค้าทั้งสองไปลบกับคอลัมF2ชีทCalculation2
ค่าMaxตรงกับลูกค้ารายไหนให้ลบชื่อนั้นทิ้งหรือให้ค่าในเซลล์เป็น0เพื่อจะได้ไม่ต้องมีการจับคู่หาน้ำหนัก เช่น ถ้าตรงกับกาญจนาโลหะการด้านซ้าย และตรงกับเอสวีด้านบน ให้ลบชื่อ กาญจนาโลหการที่คอลัมJและลบเอสวีที่คอลัมJด้วย และให้ลบชื่อ กาญจนาโลหการที่แถว1และลบเอสวีที่แถว1ด้วย แล้วเอาเลขทะเบียนรถจากคอลัมB2 ไปใส่ในคอลัมH ให้ตรงกับช่องชื่อลูกค้าที่หายไป ถ้านอกเหนือเงื่อนไขดังกล่าว คือไม่มีอะไรเกิดขึ้น
ให้กดปุ่มจนกว่าค่าตัวเลขในตารางหายไปหมด แล้วจึงกดเลือกรถคันใหม่ ทำแบบนี้ไปเรื่อยๆจนกว่าจะจัดรถได้ทุกลูกค้า
ปัญหาคือ
1โปรแกรมไม่ยอมเพิ่มรถให้ลูกค้าสุดท้ายของรถที่สามารถบรรทุกได้
2 ลูกค้าที่ได้รับการจัดรถนั้น บนหัวตาราง และซ้ายมือของตาราง ไม่ยอมเป็น0
ผมต้องแก้ไขยังไงครับ
ขอบคุณครับ