【发布时间】:2021-11-04 12:06:45
【问题描述】:
我发布此消息是因为我的 google 脚本代码有问题。
我的工作表中有两个标签:
- 第一个是包含我所有记录的数据库
- 第二个是存档,应该包含我要存档的第一个选项卡的数据(其中复选框等于 true)
选中一些框后,我运行我的脚本,该脚本必须复制存档选项卡中选中框的行,然后在数据库选项卡中删除同一行。 如果我只选中一个框,一切都会完美运行。但是,当有几个选定时,它不会删除正确的。
例子:
要删除的第1行和第5行→删除第1行和第4行。
我运行了一个 console.log 来查看我的错误来自哪里,但我不得不说我被卡住了。 肯定不多,但如果有人有几分钟时间给我发表意见,我就是接受者。
Here是我的Sheet的链接。
提前感谢您的反馈。
-- 编辑 1 --- 这是代码:
function archivage(){
// Déclaration des constantes
const classeur = SpreadsheetApp.getActiveSpreadsheet();
const feuilleBDD = classeur.getSheetByName("bdd");
const feuilleArchivage = classeur.getSheetByName("archive");
// Récupération de l'ensemble des données
var rangeDonnees = feuilleBDD.getRange("A2:D").getValues();
// Récupération du nombre d'enregistrements
var idEnregistrements = feuilleBDD.getRange("A2:A").getValues();
var nbEnregistrements = idEnregistrements.filter(Number).length;
for (let i =0; i < nbEnregistrements; i ++){
// Récupération de la première ligne vide dans l'onglet "Archivage" et Création des coordonnées
if (rangeDonnees[i][3]== true){
var ligneVide = feuilleArchivage.getLastRow()+1;
var coordLigneVide = "A"+ligneVide+":C"+ligneVide;
var coordRangeACopier = "A"+ (2+i)+":C"+ (2+i);
var coordDelete = 2 + i;
// Récopiage des données dans l'onglet "Archivage"
var range = feuilleBDD.getRange(coordRangeACopier);
range.copyTo(feuilleArchivage.getRange(coordLigneVide));
feuilleArchivage.getRange(coordLigneVide).setBackgroundRGB(255,255,255).setVerticalAlignment("middle").setHorizontalAlignment("center");
Logger.log(coordDelete);
feuilleBDD.deleteRow(coordDelete);
} else {
continue;
}
}
}
【问题讨论】:
-
您可能希望将相关代码分享给那些无法或不想访问工作表的人。
-
我在最初的帖子中添加了代码,抱歉我没有放在开头
标签: google-apps-script delete-row