所以我正在努力创建一些东西,它会自动创建一个包含姓名和员工轮班的电子表格。下面是我用来复制和粘贴这些名称并转移到新工作表中的代码。我正在使用类似连接的过程来产生类似这样的结果:“6:00 AM - 1:00 PM”。我现在的问题是该函数在第一张纸上获得了 52 行,而我并不总是有 52 行数据,因此它只返回并粘贴函数的“-”。
我要做的就是有一个函数来在给定范围内的整个单元格中找到“ - ”,并在我转到排序函数之前将其清除。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "Update", functionName: "Update"}
];
ss.addMenu("Advanced", menuEntries);
}
function Update(){
var doc = SpreadsheetApp.openById('SOURCE ID GOES HERE');
var gs = doc.getSheets()[1];
var lastColumn = gs.getLastColumn();
var data = gs.getRange(2, 1, 52, lastColumn).getValues();
var destdoc = SpreadsheetApp.openById('DESTINATION ID GOES HERE');
var destsheet = destdoc.getSheets()[0];
//Day1
//Names
var fullNames1 = [];
for (var i = 0; i < data.length; i++) {
fullNames1.push([data[i][9]]);
}
var destRangeName = destsheet.getRange("A3").offset(0, 0, fullNames1.length);
destRangeName.setValues(fullNames1);
//shift
var shift1 = [];
for (var i = 0; i < data.length; i++) {
shift1.push([data[i][10] + ' - ' + data[i][11]]);
}
var destRangeName = destsheet.getRange("B3").offset(0, 0, shift1.length);
destRangeName.setValues(shift1);
//sort
var range1 = destsheet.getRange("A3:B54");
range1.sort([{column: 2, ascending: true}]);