Nhờ các bác sửa lại code tính điểm cao nhất, thấp nhất của một lớp trong trường học. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

trungtamcnc

Thành viên hoạt động
Tham gia
5/4/10
Bài viết
124
Được thích
9
Em nhận thấy mã của em có nhiều biến đang chạy, chưa được thu gọn. Nên muốn nhận được sự đóng góp ý kiến để học tập ạ! Em cảm ơn nhiều.
Sub diem_maxmin() Range(Cells(2, 5), Cells(4, 10)).ClearContents Dim Arr As Variant ReDim Arr1(1 To 6) ReDim Arr2(1 To 6) For j = 5 To 10 diemmax = 0 diemmin = 10 For i = 2 To 179 If Cells(i, 1) = Cells(1, j) Then If diemmax < Cells(i, 2) Then diemmax = Cells(i, 2) End If End If Next i Cells(2, j) = diemmax Arr1(j - 4) = Cells(2, j) Next j '...................................... For jj = 5 To 10 diemmin = 10 For ii = 2 To 179 If Cells(ii, 1) = Cells(1, jj) Then If Cells(ii, 2) <> "" And diemmin > Cells(ii, 2) Then diemmin = Cells(ii, 2) End If End If Next ii Cells(3, jj) = diemmin Arr2(jj - 4) = Cells(3, jj) Next jj '............................... For iii = 1 To 6 Cells(4, iii + 4) = Arr1(iii) & "_" & Arr2(iii) Next iii End Sub
 

File đính kèm

Nếu bạn xoay bảng kết quả lại, thì ta có thể làm 1 số việc để tham khảo thích thú hơn, như:

LớpĐiểm caoĐiểm thấpĐ. Cao _ thấp
12A18.248.2_4=DMAX(CSDL,B1,E1:E2)
12A26.636.6_3
12A38.258.2_5
12A46.656.6_5
12A56.456.4_5
12A67.857.8_5
. . . .

(*) Công thức dẫn ra là đang áp cho ô đang có trị 8.2; . . .
'CSDL' là Name là 2 cột chứa điểm
(*) Từ cơ sở này ta vẫn viết các câu lệnh VBA để tạo ra bảng kết quả trên & đảm bảo thoáng hơn.
Chúc bạn thành công!
 
Web KT

Bài viết mới nhất

Back
Top Bottom