-1
votes

Script Google pour sélectionner des lignes dans Google Feuilles et effacer le contenu

Je veux essayer de nettoyer les lignes prêtes à supprimer contenant un mot spécifique dans Google Feuilles, le problème que j'ai est le script que je suis allé avec Suppr Lines 1 par 1 qui peut prendre beaucoup de temps si vous avez beaucoup de Rangez pour rechercher, où si je pouvais simplement mettre en évidence toutes ces lignes et effacer les données si la ligne ne peut que le mot spécifique, ce serait beaucoup plus rapide, car je pourrais trier les données par la suite

function deleteRows() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getSheetByName('Copy of TBC Sort');
 var r = s.getRange('C3:C400');
var v = r.getValues();
for(var i=v.length-1;i>=0;i--)
 if(v[0,i]=='Delete Row')
  s.deleteRow(i+1);
 };


2 commentaires

Il est difficile de comprendre quel est votre problème. Essayez de structurer votre question et, s'il vous plaît, utilisez des points dans votre texte.


Ce fil est-il utile pour votre situation? Stackoverflow.com/q/54643065/7108653


3 Réponses :


2
votes

Vous pouvez utiliser ClearContent () code> à la place. Pour plus de détails, consultez le site Web de script applications ici .

L'exemple indiqué est P>

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:D10");
range.clearContent();


1 commentaires

Ok mais comment choisira-je toutes les lignes contenant le texte spécifique afin que je puisse les effacer?



2
votes

Objectif:

Supprimer des lignes si les données contiennent "Supprimer la ligne". p>


Script: h3>
function findAndDeleteRow() {
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Copy of TBC Sort');
  var r = s.getRange('C3:C400');
  var find = r.createTextFinder('Delete Row').findAll().reverse();
  if (find.length > 0) {
    for (i = 0; i < find.length; i++) {
      s.deleteRow(find[i].getRow());
    }
  }
}


0 commentaires

1
votes

Construire sur ce que Mario a dit, la chose la plus rapide est de copier les données, d'effacer la plage et de coller les données que vous souhaitez

function deleteRows() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getSheetByName('Copy of TBC Sort');
var data = s.getDataRange().getValues();
var results = [];
for(var i=v.length-1;i>=0;i--)
 if(data[0,i]=='Delete Row') continue;//skips these rows
 result.push(data[i]);
 };
s.getDataRange().clear();
s.getRange(1, 1,results.length, results[0].length).setValues(results);
}


0 commentaires