将整行移动到具有条件的另一张图纸



我需要一个脚本来将Google工作表中的整行移动到同一电子表格/工作簿中的另一个工作表中,当N列为"时;MOVETIS";。

我正在使用这样的脚本:

function MoveToSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("SOURCE");
var values = sheet.getRange(1, 14, sheet.getLastRow(), 1).getValues();
var moveRows = values.reduce(function(ar, e, i) {
if (e[0] == "MOVETHIS") ar.push(i + 1);
return ar;
}, []);
var targetSheet = ss.getSheetByName("DESTINATION");
moveRows.forEach(function(e) {
sheet.getRange(e, 1, 1, sheet.getLastColumn()).moveTo(targetSheet.getRange(targetSheet.getLastRow() + 1, 1));
});
moveRows.reverse().forEach(function(e) {sheet.deleteRow(e)});
}

起初它确实在工作,但后来它停止了工作。

也许最好使用另一个脚本,或者最好修复这个问题?

试试这个:

function MoveToSheet() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("SOURCE");
const tsh = ss.getSheetByName("DESTINATION")
const vs = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn()).getValues();
const o = vs.map(r => (r[13] == "MOVETHIS") ? r : '').filter(r => r !== '');
if(o && o.length>0) {
tsh.getRange(tsh.getLastRow() + 1, 1, o.length, o[0].length).setValues(o);
}
}

来源:

COL10COL20>td style="text align:left;;">9>td style="text-align:left;">1<10>0<14>
COL1COL8COL9COL11COL17COL18COL19COL21
7482117187719721831113211579131451021419131339189015170121914771011MOVETHIS351529145183516518 left;">1514817118149717161461361715121911329133776411652181474973199711410417057169818131112991808111619713931
101715151791501181112161071715144410MOVETHIS101314165161411870
8191012133959957016101113

相关内容

最新更新