SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓATRƯỜNG THPT DÂN TỘC NỘI TRÚ NGỌC LẶC SÁNG KIẾN KINH NGHIỆM SỬ DỤNG VBA TRONG EXCEL ĐỂ XẾP CA THI, PHÒNG THI TRONG KỲ KHẢO SÁT CHẤT LƯỢNG HỌC SINH KHỐI 12
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA
TRƯỜNG THPT DÂN TỘC NỘI TRÚ NGỌC LẶC
SÁNG KIẾN KINH NGHIỆM
SỬ DỤNG VBA TRONG EXCEL ĐỂ XẾP CA THI, PHÒNG THI TRONG KỲ KHẢO SÁT CHẤT LƯỢNG
HỌC SINH KHỐI 12
Người thực hiện: Lê Xuân Thế Chức vụ: Tổ trưởng chuyên môn SKKN thuộc lĩnh vực (môn): Tin học
THANH HÓA NĂM 2025
Trang 2MỤC LỤC
1 Mở đầu 1
1.1 Lí do chọn đề tài 1
1.2 Mục đích nghiên cứu 1
1.3 Đối tượng nghiên cứu 2
1.4 Phương pháp nghiên cứu 2
2 Nội dung sáng kiến kinh nghiệm 3
2.1 Cơ sở lí luận của sáng kiến kinh nghiệm 3
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm 3
2.3 Các sáng kiến kinh nghiệm hoặc các giải pháp đã sử dụng để giải quyết vấn đề 4
2.3.1 Hướng dẫn sử dụng 4
2.3.1.1 Tạo file Excel dữ liệu 4
2.3.1.2 Tạo các module và viết code 6
2.3.1.3 Viết code cho các Modules 12
2.3.1.4 Tạo nút chạy và gán marco 13
2.3.2 Hướng phát triển 14
2.4 Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng nghiệp và nhà trường 14
3 Kết luận, kiến nghị 17
3.1 Kết luận 17
3.2 Kiến nghị 17
TÀI LIỆU THAM KHẢO 19
Trang 31 Mở đầu
1.1 Lí do chọn đề tài
Xu thế giáo dục hiện đại khẳng định việc ứng dụng khoa học công nghệ vàođời sống nói chung và trong lĩnh vực giáo dục nói riêng vô cùng to lớn Vai trò đóđược thể hiện ở một số khía cạnh sau đây: Người dạy và học dễ dàng thu thập,tổng hợp, lưu trữ được lượng kiến thức phong phú đa dạng và được cập nhậtthường xuyên; Ứng dụng công nghệ vào giảng dạy có vai trò thúc đẩy giáo dục
mở, giúp hoạt động giáo dục đạt hiệu quả cao hơn
Việc ứng dụng công nghệ thông tin trong Nhà trường là phù hợp với chủtrương, chính sách của Đảng, Nhà nước và Bộ Giáo dục và Đào tạo
Trong quá trình tổ chức các kỳ khảo sát chất lượng học sinh khối 12 cấptrường, việc xếp ca thi và phân phòng thi là một công việc đòi hỏi sự chính xác,khoa học và hiệu quả để đảm bảo công tác thi diễn ra suôn sẻ, tránh sai sót và tối
ưu hóa nguồn lực phòng thi cũng như cán bộ coi thi
Tuy nhiên, công tác này thường được thực hiện thủ công hoặc sử dụng cáccông cụ chưa tối ưu, dẫn đến mất nhiều thời gian, công sức và dễ phát sinh lỗi khi
số lượng học sinh, phòng thi và ca thi tăng lên
VBA trong Excel là một công cụ mạnh mẽ giúp tự động hóa các quy trìnhphức tạp, nâng cao hiệu quả quản lý và giảm thiểu sai sót trong xử lý dữ liệu Việcứng dụng VBA vào công tác xếp ca thi, phòng thi sẽ giúp:
Tự động hóa quy trình xếp lịch thi, giảm thiểu thao tác thủ công
Đảm bảo tính chính xác và minh bạch trong phân bố phòng thi và ca thi.Tiết kiệm thời gian và nguồn lực cho nhà trường
Giúp cán bộ quản lý dễ dàng điều chỉnh, cập nhật khi có thay đổi
Để nâng cao hiệu quả công tác tổ chức các kỳ khảo sát khối 12 cho Nhàtrường, tôi xin đưa ra sáng kiến kinh nghiệm:
“SỬ DỤNG VBA TRONG EXCEL ĐỂ XẾP CA THI, PHÒNG THI TRONG KỲ KHẢO SÁT CHẤT LƯỢNG HỌC SINH KHỐI 12”
1.2 Mục đích nghiên cứu
Sự phát triển của công nghệ khiến tri thức của nhân loại không ngừng tănglên theo cấp số nhân, Tập dữ liệu có khối lượng lớn và phức tạp Độ lớn đến mứccần các phần mềm xử lý dữ liệu chuyên nghiệp mới có khả năng thu thập, quản lý
và xử lý dữ liệu trong một khoảng thời gian hợp lý
Là người được giao nhiệm vụ xếp phòng thi, ca thi trong các kỳ khảo sát.Nên việc sử dụng VBA trong Excel là cần thiết, có thể đáp ứng được với nhiềutrường, không phụ thuộc số lượng học sinh tham gia
Sáng kiến nhằm mục đích xây dựng một giải pháp ứng dụng công nghệthông tin, cụ thể là sử dụng ngôn ngữ lập trình VBA trong Excel, để hỗ trợ côngtác tổ chức kỳ khảo sát chất lượng học sinh khối 12 tại trường THPT Thông qua
đó, giúp tự động hóa các khâu xếp ca thi, phân phòng thi và thống kê số liệu mônthi theo từng lớp, từng phòng một cách chính xác, khoa học và hiệu quả
Sáng kiến này hướng đến việc:
Rút ngắn thời gian và giảm khối lượng công việc cho cán bộ tổ chức thi.Tăng độ chính xác và nhất quán trong quá trình phân bố thí sinh
Trang 4Tạo ra hệ thống dễ sử dụng, dễ tùy chỉnh và có khả năng áp dụng cho các kỳkhảo sát tương tự.
Góp phần nâng cao hiệu quả công tác quản lý và tổ chức thi trong nhàtrường
1.3 Đối tượng nghiên cứu
VBA là ngôn ngữ lập trình máy tính được viết tắt Visual Basic forApplications sử dụng để tự động hóa các chức năng và nhiệm vụ của MicrosoftExcel
Về nội dung: Các quy trình liên quan đến xếp ca thi, phân phòng thi, thống
kê số liệu môn thi, xuất danh sách niêm yết, thu bài trong kỳ khảo sát chất lượnghọc sinh khối 12
Về công cụ: Việc ứng dụng lập trình VBA trong Excel để giải quyết các yêucầu trên
Về phạm vi áp dụng: Dữ liệu học sinh lớp 12 của nhà trường trong một kỳkhảo sát cụ thể; có thể mở rộng cho các kỳ khảo sát nội bộ hoặc trường bạn có cấutrúc tương tự
Môi trường làm việc có mạng Internet, máy tính Windows, MicrosoftOffice Sử dụng VBA với Excel, xây dựng các công cụ xử lý mạnh mẽ trong côngviệc
1.4 Phương pháp nghiên cứu
1 Phương pháp phân tích – tổng hợp tài liệu
Nghiên cứu các văn bản chỉ đạo, quy định của Bộ Giáo dục và Đào tạo, SởGiáo dục và nhà trường về tổ chức kỳ khảo sát chất lượng học sinh
Tìm hiểu tài liệu hướng dẫn sử dụng Microsoft Excel và lập trình VBA đểxây dựng công cụ phù hợp với thực tiễn
2 Phương pháp điều tra thực tiễn
Khảo sát thực trạng tổ chức thi khảo sát học sinh khối 12 tại đơn vị, cáchthức xếp ca, phân phòng và những khó khăn, bất cập trong quá trình thực hiện thủcông Thu thập dữ liệu thực tế từ học sinh, danh sách môn thi, phòng thi, lớp học
để làm đầu vào cho giải pháp VBA
3 Phương pháp thực nghiệm
Trực tiếp lập trình và chạy thử công cụ VBA trên Excel với dữ liệu thật đểkiểm tra tính khả thi, mức độ chính xác và hiệu quả Sửa lỗi, tối ưu thuật toán dựatrên phản hồi và kết quả thử nghiệm
4 Phương pháp so sánh, đối chiếu
So sánh hiệu quả giữa cách làm thủ công và cách làm tự động bằng VBA đểđánh giá tính ưu việt của giải pháp Đối chiếu kết quả thống kê giữa hai phươngpháp để kiểm chứng tính chính xác của chương trình
5 Phương pháp tổng kết kinh nghiệm
Từ kết quả thực nghiệm và phản hồi từ quá trình triển khai, rút ra nhữngkinh nghiệm thực tiễn trong việc ứng dụng VBA vào công tác quản lý thi
Trang 52 Nội dung sáng kiến kinh nghiệm
2.1 Cơ sở lí luận của sáng kiến kinh nghiệm
Trong bối cảnh chuyển đổi số mạnh mẽ hiện nay, việc ứng dụng công nghệthông tin (CNTT) vào lĩnh vực giáo dục là xu thế tất yếu nhằm nâng cao chấtlượng quản lý, giảng dạy và học tập CNTT không chỉ là công cụ hỗ trợ mà còn làphương tiện đổi mới phương pháp, tối ưu hóa quy trình và nâng cao hiệu quả côngviệc
Chủ trương của Đảng và Nhà nước đã nhấn mạnh vai trò của CNTT tronggiáo dục thông qua Nghị quyết số 29-NQ/TW về đổi mới căn bản, toàn diện giáodục và đào tạo; Chỉ thị số 16/CT-TTg về tăng cường năng lực tiếp cận cuộc cáchmạng công nghiệp lần thứ tư; và các văn bản chỉ đạo triển khai chương trìnhchuyển đổi số quốc gia trong giáo dục; Nghị quyết 57-NQ/TW về đột phá pháttriển khoa học, công nghệ, đổi mới sáng tạo và chuyển đổi số quốc gia
Việc tổ chức các kỳ khảo sát, thi cử đòi hỏi sự chính xác, khoa học, đặc biệttrong khâu phân phòng thi, xếp ca thi, đảm bảo tính công bằng, khách quan và tiếtkiệm nguồn lực Trong khi đó, Microsoft Excel – với sự hỗ trợ của ngôn ngữ lậptrình VBA – là một công cụ phổ biến, dễ tiếp cận, có khả năng tự động hóa cao vàphù hợp với môi trường làm việc tại các cơ sở giáo dục phổ thông
Việc ứng dụng VBA trong Excel để xếp ca thi, phòng thi là minh chứng rõnét cho việc đưa CNTT vào hỗ trợ công tác quản lý giáo dục, góp phần nâng caohiệu quả, giảm thiểu sai sót và tiết kiệm thời gian cho cán bộ quản lý, giáo viên,nhân viên trong Nhà trường [1]
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Trước khi áp dụng sáng kiến, công tác xếp ca thi, phân phòng thi trong các
kỳ khảo sát chất lượng học sinh khối 12 lần 2 của Sở GD&ĐT Thanh Hóa thì đượcPhòng Khảo thí và Kiểm định chất lượng giáo dục hỗ trợ [2]
Các kỳ Khảo sát cấp trường chủ yếu được thực hiện bằng phương pháp thủcông hoặc sử dụng bảng tính Excel đơn thuần, không có sự hỗ trợ của lập trình tựđộng Việc nhập, xử lý, thống kê dữ liệu được thực hiện bằng tay, dẫn đến một sốkhó khăn như:
Tốn nhiều thời gian và công sức: Giáo viên, cán bộ quản lý phải mất nhiềugiờ đồng hồ để nhập dữ liệu, đối chiếu và sắp xếp từng học sinh vào phòng thi, cathi tương ứng
Dễ xảy ra sai sót: Do thao tác thủ công trên khối lượng dữ liệu lớn, các lỗinhư trùng ca thi, lệch số lượng học sinh giữa các phòng, hoặc phân bổ không đồngđều thường xuyên xảy ra
Khó thống kê, tổng hợp: Khi cần tổng hợp số liệu theo phòng, ca, lớp hoặctheo môn thi, người làm phải lọc, đếm thủ công, dễ dẫn đến sai lệch kết quả vàthiếu tính minh bạch
Thiếu tính linh hoạt: Khi có sự thay đổi về danh sách thí sinh, môn thi hoặcđiều chỉnh số lượng phòng thi, việc cập nhật trở nên phức tạp và dễ ảnh hưởng đếntoàn bộ bảng xếp ca/phòng đã làm trước đó
Không tối ưu hóa nguồn lực: Phòng thi và cán bộ coi thi không được phân
bổ hiệu quả, dẫn đến lãng phí cơ sở vật chất và nhân sự
Trang 6Từ những bất cập trên, đặt ra yêu cầu cấp thiết phải có một giải pháp tin họchóa, có khả năng tự động hóa cao, đảm bảo tính chính xác, nhanh chóng và linhhoạt trong việc tổ chức các kỳ khảo sát – đặc biệt là trong bối cảnh chuyển đổi sốhiện nay trong giáo dục.
2.3 Các sáng kiến kinh nghiệm hoặc các giải pháp đã sử dụng để giải quyết vấn đề
2.3.1 Hướng dẫn sử dụng
2.3.1.1 Tạo file Excel dữ liệu
Tạo file: Xep phong thi TN.xlsb
File Excel có phần mở rộng xlsb (Excel Binary Workbook) khi làm việc vớiVBA hoặc dữ liệu lớn vì những lý do sau:
1 Dung lượng file nhỏ hơn: Dung lượng thường giảm 20–60% so với xlsmhoặc xlsx, đặc biệt hiệu quả khi có nhiều công thức hoặc dữ liệu lớn
2 Mở và lưu file nhanh hơn: Do là định dạng nhị phân, tốc độ mở, lưu, xử lý
dữ liệu nhanh hơn đáng kể, đặc biệt với file có hàng trăm ngàn dòng hoặc nhiềusheet
3 Hỗ trợ VBA (Macro) đầy đủ: .xlsb hỗ trợ VBA và macro tương tựnhư xlsm, nên bạn có thể viết, lưu và chạy mã VBA hoàn toàn bình thường
4 An toàn hơn so với xls: Mặc dù là nhị phân, xlsb vẫn thuộc thế hệ mới(Office XML-based) và được hỗ trợ đầy đủ bảo mật trong Excel hiện đại, hơnhẳn xls (định dạng cũ 97–2003)
5 Tránh giới hạn kích thước và lỗi định dạng: xlsb có thể chứa hơn 1 triệudòng/sheet và nhiều hơn 16.000 cột Một số lỗi định dạng hoặc tràn bộ nhớ thườnggặp ở xlsm hoặc xlsx khi file lớn có thể tránh được nếu chuyển sang xlsb
File được lấy từ file DSThisinhDKKS.xls của phần mềm Quản lý các kỳkhảo sát chất lượng khối 12 của Sở GD&ĐT Thanh Hóa
File có 3 sheet:
* Sheet1: Lấy từ sheet HosoDKKS file DSThisinhDKKS Bổ sung cột 24,
25 để ghi các tên môn các ca thi Cột 26 để lưu các giá trị tạm Tiếp theo là các nút
để gán các Macros (các lệnh chạy chương trình)
Trang 7Dữ liệu STT và SBD được lấy từ phần mềm vnedu, sau khi xếp danh sách theo A,
B, C Theo hướng dẫn của cán bộ phòng Khảo thí và kiểm định chất lượng giáodục
Phần môn thi:
Khối 12: Môn 1: Toán; Môn 2: Ngữ văn; Môn 3: Lý; Môn 4: Hoá; Môn 5:Sinh; Môn 6: Lịch sử; Môn 7: Địa lý; Môn 8: GDKT&PL; Môn 9: Tin học; Môn10: Công nghệ CN; Môn 11: Công nghệ NN; Môn 12: Tiếng Anh;
Trong hình tôi đã thay tên cụ thể môn đăng kí:
DKKSM3 = Lý; DKKSM4 = Hóa; DKKSM5 = Sinh
* Sheet2 (MAUtb) là nơi chứa các tiêu đề, chân trang của phiếu thu bài,
danh sách niêm yết Các mẫu này có thể tùy chỉnh, chỉ yêu cầu nhập đúng vị trí
Các cụm text p@; m@; s@ là không được sửa Các cụm text đó sau này sẽ được
phần mềm thay bằng giá trị cụ thể
Trang 8* Sheet 3 (LuuTT) được sử dụng để lưu các thông tin về thí sinh, phòng thi
để khi cần thiết chuyển đổi tham chiếu
2.3.1.2 Tạo các module và viết code
Để truy cập phần viết mã, nhấn Alt + F11 để mở cửa sổ VBA (Visual Basicfor Applications) – ngôn ngữ lập trình được tích hợp trong các ứng dụng MicrosoftOffice như Excel, Word, PowerPoint, VBA là ngôn ngữ lập trình hướng sự kiện,cho phép thao tác trực tiếp với các đối tượng trong ứng dụng để tự động hóa côngviệc
Modules của sáng kiến được chia làm 4 phần, mỗi phần chứa các thủ tục:
Tạo báo cáo thống kê số lượng thí sinh theo môn, lớp và phòng.
Phần DonMon_GanPhong:
1 Giới thiệu cho Sub DonMon_GanPhong()
Trang 9Thủ tục DonMon_GanPhong là thủ tục chính, khởi đầu quá trình xử lý dữliệu xếp phòng thi Nhiệm vụ chính của nó bao gồm:
Chuẩn bị dữ liệu: Dọn dẹp (xóa nội dung và màu nền) các cột kết quả cũ bao gồmcột H (dự kiến chứa số phòng thi), cột X (dự kiến chứa môn thi ca 1) và cột Y (dựkiến chứa môn thi ca 2) trên trang tính đầu tiên của workbook
Điều phối quy trình: Sau khi dọn dẹp, thủ tục này sẽ tuần tự gọi hai thủ tục
con quan trọng khác: SapXepTheoCapMonPhoBien: Để sắp xếp lại danh sách học sinh dựa trên các cặp môn thi phổ biến XepPhongThi: Để tiến hành xếp học
sinh vào các phòng thi dựa trên danh sách đã được sắp xếp
2 Giới thiệu cho Sub SapXepTheoCapMonPhoBien()
Thủ tục SapXepTheoCapMonPhoBien chịu trách nhiệm sắp xếp lại danhsách học sinh trên sheet1 Mục tiêu chính của việc sắp xếp này là nhóm các họcsinh có cùng cặp môn thi phổ biến lại gần nhau, tạo điều kiện thuận lợi cho việcxếp phòng thi ở bước tiếp theo
Quy trình hoạt động của thủ tục này như sau:
Đếm cặp môn: Duyệt qua danh sách học sinh (từ dòng dữ liệu đầu tiênFirstDataRow) để đếm số lượng học sinh đăng ký cho từng cặp môn thi có thể có(tối đa 12 môn, được đánh dấu bằng "x" từ cột L trở đi)
Xác định cặp môn phổ biến nhất: Tìm ra cặp môn có số lượng học sinh đăng
ký nhiều nhất trong số các học sinh chưa được sắp xếp vào một cụm
Sắp xếp theo cặp môn và SBD: Nếu tìm thấy một cặp môn phổ biến, thủ tục
sẽ sắp xếp lại toàn bộ vùng dữ liệu (tính từ StartRow hiện tại đến cuối danh sách)theo các tiêu chí ưu tiên sau:
Môn thứ nhất của cặp phổ biến (thứ tự tăng dần)
Môn thứ hai của cặp phổ biến (thứ tự tăng dần)
Số Báo Danh (cột I, thứ tự tăng dần) Điều này giúp nhóm tất cả học sinhđăng ký cặp môn phổ biến đó lại với nhau
Cập nhật vùng xử lý: Sau khi sắp xếp, thủ tục xác định EndRow là dòngcuối cùng của cụm học sinh vừa được nhóm theo cặp môn phổ biến StartRow chovòng lặp tiếp theo sẽ được cập nhật thành EndRow + 1
Lặp lại: Quá trình từ bước 1 đến bước 4 được lặp lại cho đến khi không còncặp môn nào có học sinh đăng ký chung, hoặc toàn bộ danh sách đã được duyệtqua
Kết thúc thủ tục, danh sách học sinh sẽ được tổ chức lại thành các cụm, mỗicụm ưu tiên chứa các học sinh có cùng cặp môn thi phổ biến, giúp tối ưu hóa việcxếp phòng
3 Giới thiệu cho Sub XepPhongThi()
Thủ tục XepPhongThi là bước cuối cùng và quan trọng nhất, thực hiện việcphân bổ học sinh đã được sắp xếp (bởi SapXepTheoCapMonPhoBien) vào cácphòng thi cụ thể
Quá trình xếp phòng diễn ra như sau:
Thu thập thông tin môn thi: Đọc tên các môn thi từ dòng tiêu đề (dòng 2, từcột L đến W) và đếm số lượng thí sinh đăng ký cho mỗi môn
Trang 10Xác định môn thi cho các ca (tham khảo): Tìm ra hai môn có số lượng thísinh đăng ký đông nhất Thông tin này có thể được dùng để định hướng việc phân
ca thi, mặc dù logic xếp phòng chính dựa trên việc tránh xung đột môn trực tiếp
Chuẩn bị dữ liệu và phòng thi:
Tải toàn bộ dữ liệu danh sách học sinh (từ dòng 3) vào một mảng để tăng tốc
độ xử lý
Tính toán số lượng phòng thi cần thiết dựa trên tổng số học sinh và sĩ số tối
đa mỗi phòng (thường là 24, có thể điều chỉnh) Một phòng dự phòng (soPhong +1) cũng được tạo ra
Phân bổ học sinh vào phòng:
Duyệt qua từng học sinh trong danh sách
Với mỗi học sinh, xác định 1 hoặc 2 môn họ đăng ký
Cố gắng xếp học sinh vào một trong các phòng thi tiêu chuẩn (1 đếnsoPhong) Điều kiện để xếp vào một phòng là:
Phòng đó còn chỗ trống (chưa đủ 24 thí sinh) Việc thêm học sinh mớikhông gây "trùng ca" hay xung đột môn với các học sinh đã có trong phòng Logickiểm tra xung đột là: nếu học sinh A đăng ký môn X và Y, học sinh B đăng kýmôn Z và W, thì A và B có thể chung phòng nếu (X khác W VÀ Y khác Z) và (Xkhác Z VÀ Y khác W) (đây là một cách diễn giải dựa trên code If hsMon1 = mon2
Or hsMon2 = mon1 Then ok = False, nghĩa là không được có tình huống môn 1của người này là môn 2 của người kia và ngược lại) Nếu không thể xếp học sinhvào bất kỳ phòng tiêu chuẩn nào (do hết chỗ hoặc xung đột), học sinh đó sẽ đượcđưa vào phòng dự phòng
Ghi kết quả: Sau khi duyệt hết danh sách, thủ tục sẽ ghi số phòng thi đượcgán cho mỗi học sinh vào cột H, tên môn thi thứ nhất vào cột X và tên môn thi thứhai (nếu có) vào cột Y của trang tính
Kết quả là một danh sách học sinh đã được gán phòng thi một cách tối ưunhất có thể dựa trên các ràng buộc về sĩ số và môn thi
Phần KiemTra_sapxep
1 Giới thiệu cho Sub KiemTraTrungMonTrongPhong()
Thủ tục KiemTraTrungMonTrongPhong được thiết kế để kiểm tra và pháthiện các trường hợp xếp lịch thi không hợp lệ trong từng phòng thi trên trang tínhhiện tại Cụ thể, nó kiểm tra xem có môn thi nào được xếp vào cả "Ca 1" (dữ liệu
từ cột X - cột 24) và "Ca 2" (dữ liệu từ cột Y - cột 25) cho các thí sinh trong cùngmột phòng thi hay không Nếu một môn thi xuất hiện đồng thời ở cả hai cột nàytrong cùng một phòng, điều đó chỉ ra một xung đột lịch thi nghiêm trọng (ví dụ:một môn không thể diễn ra ở hai ca khác nhau tại cùng một địa điểm thi, trongcùng một phòng)
Quy trình hoạt động của thủ tục như sau:
Nhóm thí sinh theo phòng: Đầu tiên, thủ tục duyệt qua danh sách (từ dòng 3)
và nhóm tất cả các thí sinh lại dựa trên số phòng thi được ghi ở cột H (cột 8) Mỗiphòng sẽ có một danh sách các dòng (thí sinh) tương ứng
Kiểm tra từng phòng: Với mỗi phòng thi đã được xác định:
Trang 11Tạo hai danh sách tạm thời: một danh sách chứa tất cả các môn thi duy nhấtđược ghi trong cột X (Ca 1) của các thí sinh thuộc phòng đó, và một danh sáchtương tự cho cột Y (Ca 2).
So sánh hai danh sách này Nếu có bất kỳ môn thi nào xuất hiện trong cả haidanh sách (nghĩa là môn đó vừa được xếp cho Ca 1, vừa được xếp cho Ca 2 trongcùng một phòng), thì một xung đột đã được tìm thấy
Đánh dấu và thông báo lỗi:
Khi phát hiện một môn thi bị trùng (xung đột) trong một phòng, thủ tục sẽ tựđộng tô màu đỏ nền của các ô chứa tên môn thi đó (cả ở cột X và cột Y) của tất cảcác thí sinh liên quan trong phòng đó để người dùng dễ dàng nhận diện
Một thông báo sẽ xuất hiện, chỉ rõ phòng nào có lỗi và có bao nhiêu vị trí (ô)
bị đánh dấu là trùng
Tổng kết: Sau khi kiểm tra tất cả các phòng, một thông báo tổng kết cuốicùng sẽ cho biết tổng số vị trí bị trùng trên toàn bộ danh sách Nếu không có lỗinào, thủ tục cũng sẽ thông báo rằng không tìm thấy môn nào bị trùng
Mục đích chính của thủ tục này là đảm bảo tính hợp lệ của việc phân ca thitrong từng phòng, giúp tránh những sai sót logic trong khâu tổ chức
2 Giới thiệu cho Sub SapXepChonLua()
Thủ tục SapXepChonLua cung cấp một giao diện tương tác, cho phép ngườidùng linh hoạt lựa chọn và áp dụng các tiêu chí sắp xếp khác nhau cho toàn bộ dữliệu trên trang tính hiện tại (từ dòng 3 đến dòng cuối cùng có dữ liệu, trong phạm
vi từ cột A đến cột Z)
Thủ tục này rất hữu ích khi người dùng cần xem hoặc xử lý dữ liệu theonhiều góc độ khác nhau sau khi đã có kết quả xếp phòng hoặc trong các giai đoạnchuẩn bị dữ liệu
Phần TaoPhieuThuBai
1 Giới thiệu cho Sub TaoPhieuThuBai_AllPhong_Toan_Van()
Thủ tục TaoPhieuThuBai_AllPhong_Toan_Van được sử dụng để tự độngtạo các "Phiếu Thu Bài" cho một môn thi cụ thể (do người dùng nhập), áp dụngcho tất cả các phòng thi đã được phân công Thủ tục này tổng hợp thông tin từSheet1 (trang tính nguồn chứa danh sách thí sinh) và sử dụng các mẫu định sẵn từsheet MAUtb để định dạng phiếu
Quy trình hoạt động chính bao gồm:
Thu thập thông tin ban đầu:
Xác định danh sách các phòng thi duy nhất từ cột H (cột số 8) của Sheet1.Yêu cầu người dùng nhập tên môn thi cần tạo phiếu thông qua một hộp thoạiInputBox
Chuẩn bị Sheet mới cho Phiếu Thu Bài:
Tạo một trang tính mới Tên của trang tính này sẽ được đặt theo định dạngPTB_[Tên Môn Thi] (ví dụ: PTB_Toan) Nếu trang tính với tên này đã tồn tại, nó
sẽ được tự động xóa đi và tạo lại để đảm bảo dữ liệu luôn mới nhất
Áp dụng các thiết lập định dạng trang cơ bản cho sheet mới như kích thướcgiấy A4, các thông số lề trang (Top, Bottom, Left, Right, Header, Footer), và xóa
bỏ nội dung Header/Footer mặc định