-
-
Save dDondero/285f8fd557c07e07af0e to your computer and use it in GitHub Desktop.
function deleteRows() { | |
var sheet = SpreadsheetApp.getActiveSheet(); | |
var rows = sheet.getDataRange(); | |
var numRows = rows.getNumRows(); | |
var values = rows.getValues(); | |
var rowsDeleted = 0; | |
for (var i = 0; i <= numRows - 1; i++) { | |
var row = values[i]; | |
if (row[0] == 'delete' || row[0] == '') { // This searches all cells in columns A (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'. | |
sheet.deleteRow((parseInt(i)+1) - rowsDeleted); | |
rowsDeleted++; | |
} | |
} | |
}; |
Ah, never mind man, I think It was me who made a mistake. It seems to be working perfectly fine for now. I really do appreciate your help and wish you an amazing day.
Same. Wishing you a good day!
It might be worth updating your script to explain (in a code comment) that this is method does not necessarily have good performance. Ideally you should delete rows in batches. For more information https://developers.google.com/apps-script/guides/support/best-practices or this example https://stackoverflow.com/questions/73651127/speed-up-row-deletion-on-apps-script
i've been trying to make this condition work for the past hour, and i have used the debugger to see what exactly is stored in each variable (as you can see on the right) and they do match, but the condition is FALSE, and i do not get why.
can someone help? (i have never used google script or javascript before)
This is exactly what I was looking for. Had to finagle it for my own purposes, but I got it to work. I deleted a selection of columns within the target row based on whether the value of a certain cell was less than or equal to a certain number.
const deleteRows = async () => {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const rows = sheet.getDataRange();
const numRows = rows.getNumRows();
const values = rows.getValues();
let rowsCleared = 0; // This should be declared with 'let' to avoid a global variable
for (let i = 1; i < numRows; i++) {
// Start from index 1 to skip the header row
let row = values[i];
// Check if the value in column E (index 4) is <= 5
if (row[4] <= 5) {
// Wrap delete cells in a promise to make it async
await new Promise((resolve) => {
// Delete cells from columns A-J in the specific row
sheet
.getRange(i + 1, 1, 1, 10)
.deleteCells(SpreadsheetApp.Dimension.ROWS); // i + 1 to convert index to row number
resolve();
});
}
}
};
May be you show me your script? and the file.
If you used the one I sent you https://docs.google.com/spreadsheets/d/1AARYUNgdRBE_67bT0bsGbOs1ULoA4I2BXGG8OrLynBo/edit?usp=sharing it should work for any number of rows of data, for the same number of columns, placed anywhere in the spreadsheet.