复制到新的 sheet 后如何删除筛选的行?
How can I delete my filtered rows after copying to new sheet?
我需要一个脚本,在将过滤的行复制到新的 sheet 后删除它们。
这是我必须过滤并复制到新 sheet:
的代码
function archiveData() {
const ss = SpreadsheetApp.getActive();
const values = ss.getRange('Template!A3:S')
.getValues()
.filter(row => row[18]); // column S
const targetSheet = ss.getSheetByName('Archive');
appendRows_(targetSheet, values, 1);
}
它利用了appendRows_()
我尝试了以下代码但无济于事:
const ws = ss.getSheetByName("Template");
const colSData = ws.getRange('S3:S').getValues();
for(let i =colSData.length-1;i>=0;i--){
if(colSData[i][0] == true){
//console.log(colSData);
ws.deleteRows(i+1);
}
}
在你的脚本中,作为一个简单的修改,下面的修改怎么样?
发件人:
ws.deleteRows(i+1);
收件人:
ws.deleteRows(i + 3);
在您的脚本中,使用 const colSData = ws.getRange('S3:S').getValues();
检索值。据此,我认为ws.deleteRows(i+1);
可能需要修改为ws.deleteRows(i + 3);
。
顺便说一句,在您的脚本中,将const colSData = ws.getRange('S3:S').getValues();
修改为const colSData = ws.getRange('S3:S' + ws.getLastRow()).getValues();
时,处理成本可能会降低一些。
我需要一个脚本,在将过滤的行复制到新的 sheet 后删除它们。
这是我必须过滤并复制到新 sheet:
的代码function archiveData() {
const ss = SpreadsheetApp.getActive();
const values = ss.getRange('Template!A3:S')
.getValues()
.filter(row => row[18]); // column S
const targetSheet = ss.getSheetByName('Archive');
appendRows_(targetSheet, values, 1);
}
它利用了appendRows_() 我尝试了以下代码但无济于事:
const ws = ss.getSheetByName("Template");
const colSData = ws.getRange('S3:S').getValues();
for(let i =colSData.length-1;i>=0;i--){
if(colSData[i][0] == true){
//console.log(colSData);
ws.deleteRows(i+1);
}
}
在你的脚本中,作为一个简单的修改,下面的修改怎么样?
发件人:
ws.deleteRows(i+1);
收件人:
ws.deleteRows(i + 3);
在您的脚本中,使用
const colSData = ws.getRange('S3:S').getValues();
检索值。据此,我认为ws.deleteRows(i+1);
可能需要修改为ws.deleteRows(i + 3);
。顺便说一句,在您的脚本中,将
const colSData = ws.getRange('S3:S').getValues();
修改为const colSData = ws.getRange('S3:S' + ws.getLastRow()).getValues();
时,处理成本可能会降低一些。