ПРОБЛЕМА :
Я видел похожие вопросы и решения, но может заставить мой скрипт работать только на первом листе в моем файле электронных таблиц. Я адаптировал код только для применения на указанном c листе, но, возможно, я что-то упустил, когда делал это ..
Код:
/**
* Sets background color to strikethrough-formatted cells
*/
function set_color_strikethrough(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (i=0; i<sheets.length; i++) {
var sheet = ss.getSheets()[i]; // current sheet
var sheetName = sheet.getName();
console.log("sheetname: ", sheetName);
var lr = sheet.getLastRow()
var lc = sheet.getLastColumn()
var range = sheet.getRange(2,1,lr,lc);
var results = range.getFontLines();
for (var i=0;i<lr;i++) {
for (var j=0;j<lc;j++ ) {
if(results[i][j] == "line-through"){
var color = sheet.getRange(i+2,1,1,lc).setBackground("orange")
}
}
}
}
}
ОБНОВЛЕНИЕ (решение) :
Спасибо @Tanaike за то, что он указал, что переменная счетчика i
была использована неправильно, простая ошибка, которую упустили из виду. Рабочий код:
/**
* Sets background color to strikethrough-formatted cells
*/
function set_color_strikethrough(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (k=0; k<sheets.length; k++) {
var sheet = sheets[k]; // current sheet
var lr = sheet.getLastRow()
var lc = sheet.getLastColumn()
var range = sheet.getRange(2,1,lr,lc);
var results = range.getFontLines();
for (var i=0;i<lr;i++) {
for (var j=0;j<lc;j++ ) {
if(results[i][j] == "line-through"){
var color = sheet.getRange(i+2,1,1,lc).setBackground("orange")
}
}
}
}
}