有一个带有课程时间表的表格,来自谷歌表格的申请被收集在一个单独的表格上,然后使用脚本,来自带有应用程序的表格中的数据被传输到带有时间表的表格中。B 列和 C 列显示会话的开始和结束时间。这些列设置为检查TimeLib工作表上范围(下拉列表)中的数据,当时间来自应用程序时,它不会通过检查,但是如果您手动输入它,一切都很好。我检查了是否完全合规,并且表格中有数据 [Sat Dec 30 02:29:43 GMT-05:00 1899]
链接到电子表格 - https://docs.google.com/spreadsheets/d/1mKsKMpcijh81GF8R9APjMHb6iBvK_w8prWZao9MDZBA/edit?usp=sharing
要复制的脚本代码
function activeCheckBox () {
var spreadsheet = SpreadsheetApp.getActive();
var userSheetToCopy = spreadsheet.getSheetByName('Заявки');
var userSheetFromCopy = spreadsheet.getSheetByName('Расписание');
var boxRange = userSheetToCopy.getRange(2, 11, (userSheetToCopy.getLastRow() - 1));
boxRange.getValues().forEach((item, i) => {
if (item == 'true') {
if (userSheetToCopy.getRange(`A${i+2}`).getValue() != "") {
let last_row = userSheetFromCopy.getRange(1, 1, userSheetFromCopy.getLastRow(), 1).getValues().filter(String).length;
let newArr = new Array();
userSheetFromCopy.insertRowsAfter(last_row, 1);
newArr.push(...userSheetToCopy.getRange(`B${i+2}:F${i+2}`).getValues());
newArr.push(...userSheetToCopy.getRange(`J${i+2}`).getValues());
newArr.push(...userSheetToCopy.getRange(`H${i+2}:I${i+2}`).getValues());
userSheetFromCopy.getRange(`A${last_row + 1}:H${last_row + 1}`).setValues([newArr.flat()]);
userSheetToCopy.getRange(`A${i+2}:J${i+2}`).setBackground('#97ff8a');
}
}
});
sorting();
boxRange.setValue(false);
spreadsheet.toast('Выбранные записи добавлены', 'Status', 3)
}
代替
在
并且验证将成功。