传输和删除谷歌电子表格中的数据



我正在尝试使用谷歌应用程序脚本创建一个函数,该函数将在我的谷歌电子表格中的特定列中搜索单词Yes

如果它找到Yes,它将继续将整行复制到另一个保存到我的谷歌驱动器的电子表格中,然后将其从原始电子表格中删除。

我对这种语言几乎没有经验,但我已经编写了一些代码。

我正在寻找一种正确的方式来执行这一点,以及如何完成我的代码。你会怎么做?

最新代码编辑:

function moveDelete() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var dsh=SpreadsheetApp.getActive().getSheetByName('Sheet2');
var data = sh.getRange(1, 1, sh.getLastRow()-1).getValues();
var range = sh.getRange(1, 1, data.length);

var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {3
var array = data[i]
if (array[4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Send to Record",
functionName : "moveDelete"
}];
sheet.addMenu("Custom Menu", entries);
};

解决方案1-转移到同一文档:

function moveDelete() {

var ss = SpreadsheetApp.getActive()
var sh = ss.getSheetByName('Sheet1');
var dsh= ss.getSheetByName('Sheet2');  
var data = sh.getDataRange().getValues();
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {
var array = data[i]
if (data[i][4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};

解决方案2(基于注释(-转移到另一个电子表格文件:

function moveDelete() {

var ss = SpreadsheetApp.getActive();
var ts = SpreadsheetApp.openById("id of the target spreadsheet here"); // example: 31d6k7iXh20rjLn22m0axvscR6-BcyOy_fxhdk-ResXU
var sh = ss.getSheetByName('Sheet1'); // Sheet1 of the source spreadsheet
var dsh= ts.getSheetByName('Sheet2'); // Sheet2 of the target spreadsheet
var data = sh.getDataRange().getValues();
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {
var array = data[i]
if (data[i][4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};

注意1。使用4作为检查第5列的索引,该列是列E。确保索引编号正确,以便选择所需的列。

最新更新