在一个名为Attendance的Google Spreadsheet中,有一个名为Template的工作表。用户复制此工作表,用当前日期重命名工作表,并使用此工作表标记学生的出勤率。模板表包含受保护的单元格,并通过在给定的空间(未受保护的单元格)中输入学生的ID号来标记出勤。我使用以下脚本来复制多个工作表并每天对其进行重命名:
function createDailyAttendance() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var refss = ss.getSheetByName("DataPointers");
// Get the range Row and Column information.
var dataRangeRow = refss.getRange("K2").getValue();
//var dataRangeCol = ss.getRangeByName(ColName).getValue();
// Get the range of cells that store Duplicate sheet name.
var AttendanceDataRange = refss.getRange(dataRangeRow);
var AttendanceObjects = AttendanceDataRange.getValues();
var template = ss.getSheetByName('Template');
for (var i=0; i < AttendanceObjects.length; i++) {
// Put the sheet you want to create in a variable
var sheet = ss.getSheetByName(AttendanceObjects[i]);
// Check if the sheet you want to create already exists. If so,
// log this and loop back. If not, create the new sheet.
if (sheet) {
Logger.log("Sheet " + AttendanceObjects[i] + "already exists");
} else {
template.copyTo(ss).setName(AttendanceObjects[i]);
}
}
return;
}
该脚本帮助我从模板创建工作表的多个副本,但是重复的副本不保留单元格/范围权限。有没有一种添加循环功能的方法,该功能可以从Template中提取权限并在每次循环template.copyTo
创建工作表时应用该功能?
请在这里查看我的相关文章... stackoverflow.com/questions/40512801/…–
—
phinland