根据条件切到另一个sheet + spreadsheet
Cut based on condition to another sheet + spreadsheet
我需要一些帮助来构建一个应该执行以下操作的简单脚本:
检查 sheet source 上的 Col C 是否等于 "Done"
如果是,请将符合条件的 Col A 和 Col B 中的行复制并粘贴到 sheet history 上的第一个空行+ 复制粘贴的时间戳
然后从 spreadsheet Destination 上的 Col A 和 B 复制并粘贴相同的值,选项卡上的第一个空行 destination + 时间戳复制粘贴
最后从第一个sheet source删除复制的行,所以没有空行
如果不是,则保留值
总的来说,我们的目标是剪切符合条件的值并将它们同时粘贴到不同的 sheet 和不同的传播sheet。
给你:
function main() {
// get 'Done' rows from sheet 'source' and remove these rows
var data = get_done();
// put the rows on the sheet 'history' (same spreadsheet)
copy_to_history(data);
// pyt the rows on the sheet 'destination' (another spreadsheet)
copy_to_destination(data);
}
function get_done() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('source');
var data = sh.getDataRange().getValues();
var keep = data.filter(x => x[2] != 'Done');
sh.clearContents().getRange(1,1,keep.length,keep[0].length).setValues(keep);
var timestamp = new Date();
var done = data.filter(x => x[2] == 'Done').map(x => [timestamp, x[0], x[1]]);
return done;
}
function copy_to_history(data) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('history');
data.forEach(row => sh.appendRow(row));
}
function copy_to_destination(data) {
var ss = SpreadsheetApp.openById('1niihiUXZii1gNnifn2ZLNf4JnvLs887mJMp53OcIphA');
var sh = ss.getSheetByName('destination');
data.forEach(row => sh.appendRow(row));
}
该脚本的主要缺点:它不保留公式和格式。
我需要一些帮助来构建一个应该执行以下操作的简单脚本:
检查 sheet source 上的 Col C 是否等于 "Done"
如果是,请将符合条件的 Col A 和 Col B 中的行复制并粘贴到 sheet history 上的第一个空行+ 复制粘贴的时间戳
然后从 spreadsheet Destination 上的 Col A 和 B 复制并粘贴相同的值,选项卡上的第一个空行 destination + 时间戳复制粘贴
最后从第一个sheet source删除复制的行,所以没有空行
如果不是,则保留值
总的来说,我们的目标是剪切符合条件的值并将它们同时粘贴到不同的 sheet 和不同的传播sheet。
给你:
function main() {
// get 'Done' rows from sheet 'source' and remove these rows
var data = get_done();
// put the rows on the sheet 'history' (same spreadsheet)
copy_to_history(data);
// pyt the rows on the sheet 'destination' (another spreadsheet)
copy_to_destination(data);
}
function get_done() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('source');
var data = sh.getDataRange().getValues();
var keep = data.filter(x => x[2] != 'Done');
sh.clearContents().getRange(1,1,keep.length,keep[0].length).setValues(keep);
var timestamp = new Date();
var done = data.filter(x => x[2] == 'Done').map(x => [timestamp, x[0], x[1]]);
return done;
}
function copy_to_history(data) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('history');
data.forEach(row => sh.appendRow(row));
}
function copy_to_destination(data) {
var ss = SpreadsheetApp.openById('1niihiUXZii1gNnifn2ZLNf4JnvLs887mJMp53OcIphA');
var sh = ss.getSheetByName('destination');
data.forEach(row => sh.appendRow(row));
}
该脚本的主要缺点:它不保留公式和格式。