Tách một số cột của bảng dữ liệu ra thành file riêng

Liên hệ QC

titanic20072007

Thành viên thường trực
Tham gia
10/7/07
Bài viết
213
Được thích
8
Nghề nghiệp
Giáo viên
Mình đang tạo một tệp tính điểm cho giáo viên bộ môn trong trường. Trường mình yêu cầu sau mỗi học kỳ sau khi tính điểm TB cho HS xong thì GV bộ môn nộp tệp có STT, Họ tên HS, điểm TB của môn cho GV chủ nhiệm lớp tính để xếp loại HS (có chương trình cho chủ nhiệm riêng) và đưa dữ liệu lên web. Với những GV nhiều tuổi và không thạo thì copy và paste mất thời gian và khó khăn. Mình muốn khi nhấn vào nút Kết xuất tương ứng với học kỳ cần kết xuất thì dl của những cột đó tự động lưu ra một tệp. Nhưng mình lại không biết làm và mình không biết nhiều về VB.
Mình có gửi tệp mẫu và tập kết quả cần đạt được kèm theo nhờ các bác làm giúp. Mong các bạn giúp đỡ. Xin cảm ơn.
 

File đính kèm

Bạn xem file, chắc là ok rồi đó.
 

File đính kèm

Upvote 0
Cảm ơn bạn. Đúng ý mình rồi. Bạn đã bổ sung lệnh nào vào đấy có phải lệnh này ActiveSheet.Name = Sheets(2).[b2] không?
À mình biết rồi bạn đặt thuộc tính Locked và hidden cho các cột màu trắng đó nhưng nếu vậy khi mình khóa các công thức ở tệp gốc rồi đưa tập này cho gv sử dụng thì nó sẽ khóa luôn các cột đó và như vậy là gv họ không nhập được điểm vào. Bạn xem hộ mình còn cách nào khác không?
 
Lần chỉnh sửa cuối:
Upvote 0
Mình giải thích từng câu lệnh, hy vọng bạn và những bạn khác mới làm quen với VBA có thế áp dụng cho những yêu cầu phát sinh khác. Lưu ý dòng code màu đỏ. Ban có thể khoá sheet và để lại những ô cho phép ngưòi sử dụng nhập thông tin. Chúc thành công

Sub CopySheet()
' khong hien thi thong bao nhac nho len man hinh.Can than, su dung cai nay hoi nguy hiem neu co file trung ten van bi save de len tap tin cu
Application.DisplayAlerts = False
'Dat ten sheet bang gia tri o B2 tu sheet2
ActiveSheet.Name = Sheets(2).[b2]
'Mo khoa sheet hien hanh
ActiveSheet.Unprotect
'Sao chep noi dung cua sheet hien hanh vao bo nho may tinh
ActiveSheet.Copy
' Dan gia tri tat ca vung co du lieu va xoa nhung hinh ve neu co
With ActiveSheet
.UsedRange.Value = .UsedRange.Value 'loai bo het cong thuc
.DrawingObjects.Delete 'Xoa het nhung hinh ve
End With
End Sub
Sub HK_1()
'Khong cho man hinh giat giat de cho code chay nhanh hon
Application.ScreenUpdating = False
' Tao bien Fname de gan ten cho file sap tao (lay tu 2 o cua sheet2)
Fname = Sheets("sheet2").[b2] & Sheets("sheet2").[b1]
'Goi macro de thuc hien nhung dong lenh cua macro Copysheet
Call CopySheet
'Xoa nhung cot can xoa
Union([c:p], [r:ai], [am:an]).EntireColumn.Delete
'Khoa sheet hien hanh
Sheets(1).Protect
' Luu File vao dong File lai
With ActiveWorkbook
.SaveAs ThisWorkbook.Path & "\" & Fname & "HK1.xls" 'luu File
.Close 'Dong File
End With
' Go bo thuoc tinh khoa cells cua nhung cells muon khong khoa
[AK6:AN50].Locked = False
'Khoa sheet hien hanh lai, nhung cells phia tren se khong bi khoa
ActiveSheet.Protect
End Sub
Sub HK_2()
Application.ScreenUpdating = False
Fname = Sheets("sheet2").[b2] & Sheets("sheet2").[b1]
Call CopySheet
Union([a:q], [t:ag]).EntireColumn.Delete
Sheets(1).Protect
With ActiveWorkbook
.SaveAs ThisWorkbook.Path & "\" & Fname & "HK2.xls"
.Close
End With
[AK6:AN50].Locked = False
ActiveSheet.Protect
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn với cách hướng dẫn trên mình đã khóa được toàn bộ những cột cần khóa ở tệp mới. Chúc năm mới vui vẻ, hạnh phúc.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom