Сбросить флажки и удалить заметки на определенных листах - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужно сбросить флажки в FALSE (не проверено), а также удалить все заметки с определенных листов.

Также нужен скрипт, который удаляет все заметки из листа Google (все листы)

Я попытался объединить множество различных сценариев.

https://webapps.stackexchange.com/questions/115076/how-to-run-script-on-multiple-google-sheet-tabs

Сбросить флажки в ложныесо значением 1 в ячейки с надписью «ЛОЖЬ»

function ResetCheckBoxesAndClearNotesOnDefinedSheets(){
    var tabs = [
        'Checkboxes 1',
        'Checkboxes 2',
        'Checkboxes 3',
        'Another Checkbox tab',
        'Yet another checkbox tab'
    ];


  //LOOP THROUGH TABS LISTED ABOVE
    var ss=SpreadsheetApp.getActiveSpreadsheet();
    for (var i = 0; i < tabs.length; i++) {
        var sheet=ss.getSheetByName(tabs[i]);

  //CLEAR NOTES ON TABS LISTED ABOVE    
      sheet.clearNotes();

 // CLEAR CHECKBOXES ON TABS LISTED ABOVE

var dataRange = sheet.getRange('A:I');
var values = dataRange.getValues();
for (var i = 0; i < values.length; i++) {
  for (var j = 0; j < values[i].length; j++) {
    if (values[i][j] == true) {
      values[i][j] = false; // Modified
    }
  }
}
dataRange.setValues(values);


}//end of  sheets loop.
  }

АКТУАЛЬНЫЕ РЕЗУЛЬТАТЫ: - Он не просматривает страницы и не удаляет заметки.Он также не выполняет циклическое переключение и не меняет все флажки на вкладках на непроверенные. Иногда он заменяет «1» на ЛОЖНЫЕ

ОЖИДАЕМЫЕ РЕЗУЛЬТАТЫ:листы (или вся таблица)

1 Ответ

0 голосов
/ 18 февраля 2019

Как насчет этой модификации?

Точки модификации:

  • В вашем скрипте переменная i используется как для for (var i = 0; i < tabs.length; i++) {, так и for (var i = 0; i < values.length; i++) {.
    • Таким образом, значение i из for (var i = 0; i < tabs.length; i++) { не увеличивается каждые 1.
    • Я думаю, что это одна из ваших проблем It does not loop through the pages and delete the notes..
    • Например, пожалуйста, измените на for (var k = 0; k < tabs.length; k++) {var sheet=ss.getSheetByName(tabs[k]);.
  • Сравнение равенства == используется для сравнения логического значения.
    • Я думаю, что это еще одна проблема it sometimes replaces a "1" with a FALSE.
    • Пожалуйста, измените это на сравнение строгого равенства ===.

Модифицированный скрипт:

Пожалуйста, измените его следующим образом.

С:
for (var i = 0; i < tabs.length; i++) {
    var sheet = ss.getSheetByName(tabs[i]);
К:
for (var k = 0; k < tabs.length; k++) {
    var sheet = ss.getSheetByName(tabs[k]);

И

С:
if (values[i][j] == true) {
К:
if (values[i][j] === true) {

Ссылка:

Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...