VBA หาค่าสูงสุด
Posted: Thu Apr 06, 2017 1:16 am
เรียนอาจารย์ที่เคารพครับ
เหตุใดการแสดงผลลัพธ์จากการดึงข้อมูล ในการหาค่าสูงสุด แสดงผลลัพธ์ไม่ตรงกับค่าที่เป็นจริง กล่าวคือ หากคะแนนในไฟล์แต่ละไฟล์ของ directory = D:\data\ปีการศึกษา2559\เทอม2\ม.4-1 ชีท รายงาน1 cell i7:i61 ถ้าแถวใดมีค่ามากที่สุดให้แสดงผลออกมา แสดงชื่อวิชา, ชื่อ, นามสกุล, ชั้น, คะแนน โดยการกดปุ่ม ดึงคะแนน ที่ไฟล์ คะแนนสูงสุดแต่ละวิชา.xlsm ที่ชีท MaxM4 โดยมีเงื่อนไขว่า ถ้าคะแนนมากที่สุดของแต่ละวิชา ให้แสดงข้อมูลชื่อวิชา, ชื่อ, นามสกุล, ชั้น, คะแนน ของคนที่ได้คะแนนสูงสุด แต่ถ้าคะแนนมากสุด เท่ากันในแต่ละรายวิชา ก็ให้แสดงข้อมูลของคนที่ได้คะแนนสูงสุดที่เหมือนกัน เมื่อแสดงข้อมูลจนครบทุกไฟล์ใน directory = D:\data\ปีการศึกษา2559\เทอม2\ม.4-1 แล้ว ก็ให้ไปค้นหาข้อมูลของอีกห้องคือ directory = D:\data\ปีการศึกษา2559\เทอม2\ม.4-2 แสดงเหมือนกันกับห้องแรก แต่ว่าถ้าวิชาเหมือนกันก็ให้เอาชื่อวิชา, ชื่อ, นามสกุล, ชั้น, คะแนน ในวิชาที่เหมือนกัน เขียนต่อเป็นกลุ่มของรายวิชานั้นๆ เช่น วิชาคณิตศาสตร์ มีนักเรียนทั้ง 2 ห้องที่เรียนวิชานี้ หากมีคะแนนสูงสุด ห้อง ม.4/1 มีคะแนนสูงสุด 3 คนที่เท่ากัน ก็แสดงข้อมูลของทั้ง 3 คน จากนั้นก็ไปหาห้อง ม.4/2 มีใครที่มีคะแนนสูงสุดก็เอาข้อมูลมาเขียนต่อเป็นคนที่ 4 ตามลำดับ ถ้าห้อง ม.4/2 มีแค่คนเดียวที่มีคะแนนมากที่สุด แต่ถ้ามีคะแนนมากที่สุดหลายคนก็เอาข้อมูลมาต่อกันเหมือนของห้องแรก
ไม่รู้ว่าผมอธิบายปัญหาให้อาจารย์ได้เข้าใจได้ชัดเจนบ้างหรือเปล่า
เหตุใดการแสดงผลลัพธ์จากการดึงข้อมูล ในการหาค่าสูงสุด แสดงผลลัพธ์ไม่ตรงกับค่าที่เป็นจริง กล่าวคือ หากคะแนนในไฟล์แต่ละไฟล์ของ directory = D:\data\ปีการศึกษา2559\เทอม2\ม.4-1 ชีท รายงาน1 cell i7:i61 ถ้าแถวใดมีค่ามากที่สุดให้แสดงผลออกมา แสดงชื่อวิชา, ชื่อ, นามสกุล, ชั้น, คะแนน โดยการกดปุ่ม ดึงคะแนน ที่ไฟล์ คะแนนสูงสุดแต่ละวิชา.xlsm ที่ชีท MaxM4 โดยมีเงื่อนไขว่า ถ้าคะแนนมากที่สุดของแต่ละวิชา ให้แสดงข้อมูลชื่อวิชา, ชื่อ, นามสกุล, ชั้น, คะแนน ของคนที่ได้คะแนนสูงสุด แต่ถ้าคะแนนมากสุด เท่ากันในแต่ละรายวิชา ก็ให้แสดงข้อมูลของคนที่ได้คะแนนสูงสุดที่เหมือนกัน เมื่อแสดงข้อมูลจนครบทุกไฟล์ใน directory = D:\data\ปีการศึกษา2559\เทอม2\ม.4-1 แล้ว ก็ให้ไปค้นหาข้อมูลของอีกห้องคือ directory = D:\data\ปีการศึกษา2559\เทอม2\ม.4-2 แสดงเหมือนกันกับห้องแรก แต่ว่าถ้าวิชาเหมือนกันก็ให้เอาชื่อวิชา, ชื่อ, นามสกุล, ชั้น, คะแนน ในวิชาที่เหมือนกัน เขียนต่อเป็นกลุ่มของรายวิชานั้นๆ เช่น วิชาคณิตศาสตร์ มีนักเรียนทั้ง 2 ห้องที่เรียนวิชานี้ หากมีคะแนนสูงสุด ห้อง ม.4/1 มีคะแนนสูงสุด 3 คนที่เท่ากัน ก็แสดงข้อมูลของทั้ง 3 คน จากนั้นก็ไปหาห้อง ม.4/2 มีใครที่มีคะแนนสูงสุดก็เอาข้อมูลมาเขียนต่อเป็นคนที่ 4 ตามลำดับ ถ้าห้อง ม.4/2 มีแค่คนเดียวที่มีคะแนนมากที่สุด แต่ถ้ามีคะแนนมากที่สุดหลายคนก็เอาข้อมูลมาต่อกันเหมือนของห้องแรก
ไม่รู้ว่าผมอธิบายปัญหาให้อาจารย์ได้เข้าใจได้ชัดเจนบ้างหรือเปล่า