Nhờ các bạn giúp code cho file Sổ đầu bài trong trường học!

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

duchuongminh

Thành viên mới
Tham gia
2/8/10
Bài viết
14
Được thích
0
Các bạn giúp mình với!
Hiện tại mình đang thiết kế 1 file đánh giá giờ dạy trong trường học muốn dùng Script trên GoogleSheet. Cụ thể gồm 2 Sheet:
1. Sheet Form nhập liệu:
1721629987900.png

1721629987900.png
2. Sheet Data:
1721630023694.png

1721630023694.png
Ý tưởng của mình là:
1. Gõ mã tiết vào ô C4 để tìm kiếm sau đó người dùng sẽ bổ sung Môn học, Tiết theo PPCT, HS vắng, Tên bài, Nhận xét, Đánh giá, Họ tên sau đó sẽ cập nhật. Dữ liệu sẽ chuyển sang Sheet Data.
2. Không cho sửa các ô C6,C8,E6,E8 trên FORM
3. Chỉ cập nhật được khi kết quả Tìm kiếm là có
4. Chỉ cập nhật được trước 12h00 của ngày đánh giá ( Vì giáo viên dạy xong phải đánh giá giờ dạy luôn).
Đây là file và đoạn code mình làm nhưng không chạy như ý.
Cảm ơn các bạn nhiều!
Code:


//Search data========================

var SPREADSHEET_NAME = "Data";
var SEARCH_COL_IDX = 0;
var RETURN_COL_IDX = 0;

function searchStr() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet

var str = formSS.getRange("C4").getValue();
var values = ss.getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
for (var i = 0; i < values.length; i++) {
var row = values;
if (row[SEARCH_COL_IDX] == str) {

formSS.getRange("C4").setValue(row[0]) ;
formSS.getRange("C6").setValue(row[1]);
formSS.getRange("E6").setValue(row[2]);
formSS.getRange("C8").setValue(row[3]);
formSS.getRange("E8").setValue(row[4]);
formSS.getRange("G8").setValue(row[5]);
formSS.getRange("C10").setValue(row[6]);
formSS.getRange("C12").setValue(row[7]);
formSS.getRange("C14").setValue(row[8]);
formSS.getRange("C16").setValue(row[9]);
formSS.getRange("C18").setValue(row[10]);
formSS.getRange("C20").setValue(row[11]);

return row[RETURN_COL_IDX];

}
}
}

//Update====================

function updateData() {

var SPREADSHEET_NAME = "Data";
var SEARCH_COL_IDX = 0;
var RETURN_COL_IDX = 0;

var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet
var datasheet = ss.getSheetByName("Data"); //Data Sheet


var str = formSS.getRange("C4").getValue();
var values = ss.getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
for (var i = 0; i < values.length; i++) {
var row = values;
if (row[SEARCH_COL_IDX] == str) {
var INT_R = i+1

var values1 = [[
formSS.getRange("G8").getValue(),
formSS.getRange("C10").getValue(),
formSS.getRange("C12").getValue(),
formSS.getRange("C14").getValue(),
formSS.getRange("C16").getValue(),
formSS.getRange("C18").getValue(),
formSS.getRange("C20").getValue()
]];

datasheet.getRange(INT_R, 1, 1, 8).setValues(values1);
SpreadsheetApp.getUi().alert(' "Bạn đã hoàn thành đánh giá giờ học "');
return row[RETURN_COL_IDX];
}
}
}
 

File đính kèm

  • TKB 2024-2025(22.7).xlsx
    891.4 KB · Đọc: 3
Các bạn giúp mình với. Lượng View có mà không thấy ai phải hồi gì. Buồn ghê, hay mình trình bày chưa rõ ý, chẳng lẽ lại khó thế
Không cần điều kiện cập nhật trong ngày cũng được
 
Các bạn giúp mình với. Lượng View có mà không thấy ai phải hồi gì. Buồn ghê, hay mình trình bày chưa rõ ý, chẳng lẽ lại khó thế
Không cần điều kiện cập nhật trong ngày cũng được
bác phải đính kèm link GGS chứ đính kèm file thế kia không lẽ lại code trên file.
 
Các bạn giúp mình với. Lượng View có mà không thấy ai phải hồi gì. Buồn ghê, hay mình trình bày chưa rõ ý, chẳng lẽ lại khó thế
Không cần điều kiện cập nhật trong ngày cũng được
Không khó nhưng bài của bạn dài quá, mà bạn thì tiết kiệm ví dụ.
Nhiều người nhờ mà cứ ngỡ công việc chỉ búng tay cái "chóc" là xong.
 
Web KT

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

Back
Top Bottom