Я новичок в скриптах Google Apps, поэтому мне жаль, если мой вопрос излишний.
Я работаю над вариантом скриптов здесь:
Google Sheets: удалить строки, содержащие указанные данные
(Вот сценарий, который я редактировал - обратите внимание на пустое значение IF.)
function onOpen(){
}
function deleteFunction(){
var sheetName = "Title";
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName(sheetName);
var dataRange = sheet.getDataRange();
var numRows = dataRange.getNumRows();
var values = dataRange.getValues();
var rowsDeleted = 0;
for (var i = 2; i <= numRows; i++){
var rowValues = values[i-1].toString();
if (rowValues == ""){
sheet.deleteRow(i - rowsDeleted);
rowsDeleted++;
}
Я хотел бы удалить строки в лист с названием «Заголовок», который не содержит «| My Text Here». Текст находится в текстовой строке, такой как «Вот текстовая строка, которая может быть случайной | Мой текст здесь». Поэтому, если «| My Text Here» не найден в ячейке, я хочу удалить всю эту строку.
Набор данных, с которым я хочу работать, будет иметь ~ 10000 строк, и я хочу, чтобы этот скрипт или бегите, когда лист открыт, или один раз в день.
Я пытался сделать эту работу, но я думаю, что я на неправильном пути и поэтому очень признателен за помощь сообщества!
При необходимости я могу приложить контрольный лист.
Заранее благодарю за помощь и руководство
Новый скрипт:
function main() {
var SS = SpreadsheetApp.getActive();
var SHEET = SS.getSheetByName("Title");
var RANGE = SHEET.getDataRange();
var DELETE_VAL = "| TEST TEXT HERE";
var COL_TO_SEARCH = 0; //Zero is first
var deleteSelectedRows = removeThenSetNewVals();
};
function removeThenSetNewVals(){
var SS = SpreadsheetApp.getActive();
var SHEET = SS.getSheetByName("Title");
var RANGE = SHEET.getDataRange();
var rangeVals = RANGE.getValues();
var DELETE_VAL = "| TEST TEXT HERE";
var COL_TO_SEARCH = 0; //Zero is first
var newRangeVals = [];
for(var i = 0; i < rangeVals.length; i++){
if(rangeVals[i][COL_TO_SEARCH] == DELETE_VAL){
newRangeVals.push(rangeVals[i]);
};
};
RANGE.clearContent();
var newRange =
SHEET.getRange(1,1,newRangeVals.length, newRangeVals[0].length);
newRange.setValues(newRangeVals);
};
}