Это простой пример, на котором вы можете построить:
function assignTask() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=rg.getValues();
var today=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy");
for(var i=1;i<vA.length;i++){
if(!vA[i][3]){
var sht=ss.getSheetByName(vA[i][2]);
if(sht){
sht.appendRow([vA[i][0],today]);
}else{
var sht=ss.insertSheet(vA[i][2]);
sht.appendRow(['Task','Date'])
sht.appendRow([vA[i][0],today]);
}
vA[i][3]='Done';
vA[i][1]=today;
}
}
rg.setValues(vA);
}
Электронная таблица выглядит следующим образом:
Послезапуск сценария выглядит следующим образом:
Если лист человека не существует, он создаст его и поместит в него информацию заголовкапосле создания.Если он существует, строка просто добавляется в конец.Назначенные задачи имеют «выполнено» в назначенном столбце и дату, которой они были назначены в столбце даты.Очевидно, что есть много других вещей, которые вы можете сделать с этим, так что развлекайтесь с этим.
Чтобы ответить на ваш вопрос: Ваша функция копирует столбцы.
function copyColumns() {
var srcSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
var desSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");
var cA = ['A','C','D','F'];
var pA = ['A','B','C','D'];
for(var i=0;i<cA.length;i++){
srcSheet.getRange(cA[i] + ':' + cA[i]).copyTo(desSheet.getRange(pA[i] + ':' + pA[i]));
//src colA to des colA, src colc to des colB,src colD to des colC,src colF to des colD
}
}
Оформить эти ссылки:
- Класс диапазона электронной таблицы
- Класс электронной таблицы