- Вы хотите очистить содержимое всех ячеек, которые не имеют значения
10
в листе. - Вы хотите добиться этого с помощью Google Apps Script.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, воспринимайте это как один из нескольких возможных ответов.
В этом ответе я использовал следующий поток.
- Извлечение всех значений из диапазона данных в таблице.
- Получите диапазон ячеек, значение которого не равно
10
в качестве a1Notation. - Очистите содержимое, используя
getRangeList
.
Модифицированный скрипт:
function clearRange() {
var activeSheet = SpreadsheetApp.openById("idofmytable").getSheetByName("name");
var columnToLetter = function(column) { // This is from https://stackoverflow.com/a/21231012/7108653
var temp, letter = '';
while (column > 0) {
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
};
// Retrieve all values.
var values = activeSheet.getDataRange().getValues();
// Retrieve the cell range as a1Notation, when the cell value is not 10.
var ranges = values.reduce(function(ar, row, i) {
row.forEach(function(col, j) {if (col != 10) ar.push(columnToLetter(j + 1) + (i + 1))});
return ar;
}, []);
// Clear the content of the retrieved ranges.
activeSheet.getRangeList(ranges).clearContent();
}
Ссылки:
Если я неправильно понял ваш вопрос, и это было не то направление, которое вы хотите, я приношу свои извинения.
Добавлено:
- Вы хотите удалить содержимое из ячеек в диапазонах "B9 : H35 & K9: Q35 ", которые не являются значением
10
в листе.
Пример сценария:
function clearRange() {
var activeSheet = SpreadsheetApp.openById("idofmytable").getSheetByName("name");
var columnToLetter = function(column) { // This is from https://stackoverflow.com/a/21231012/7108653
var temp, letter = '';
while (column > 0) {
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
};
// Retrieve values from B9:H35 and K9:Q35.
var value1 = activeSheet.getRange('B9:H35').getValues();
var value2 = activeSheet.getRange('K9:Q35').getValues();
// Retrieve the cell range as a1Notation, when the cell value is not 10.
var colOffset1 = 2;
var colOffset2 = 11;
var rowOffset = 9;
var ranges1 = value1.reduce(function(ar, row, i) {
row.forEach(function(col, j) {
if (col != 10) ar.push(columnToLetter(j + colOffset1) + (i + rowOffset))});
return ar;
}, []);
var ranges2 = value2.reduce(function(ar, row, i) {
row.forEach(function(col, j) {
if (col != 10) ar.push(columnToLetter(j + colOffset2) + (i + rowOffset))});
return ar;
}, []);
// Clear the content of the retrieved ranges.
activeSheet.getRangeList(ranges1).clearContent();
activeSheet.getRangeList(ranges2).clearContent();
}