Ошибка кодирования сценариев Google Apps (очень простая)

#google-apps-script

Вопрос:

Здесь полный новичок. Вот скрипт для очистки содержимого столбца, но он не работает. Я изменил его и получил различные ошибки (идентификатор электронной таблицы не определен). Это самая последняя ошибка: Ошибка ссылки: sheet_Id не определен

Заранее благодарю вас!

Вот код (извините, это беспорядок; я же говорил вам, что был полным новичком):

 function ClearColumn() { //This script will clear ALL the values in the status column
var sheet_id = "1RnIV4IpQSfeqVh_VDp2Qy0301zgVttSGzY9FI7T3u_w";
var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet();//populate with sheet name of your merge source
var columnHeader = "Template 1 Template - Send Status"  //populate with header of column you wish to clear 

var ss = SpreadsheetApp.openById(sheet_Id);
   if (ss) {
var sheet = ss.getSheetByName(sheetName);
if (sheet) {
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  var column = headers.indexOf(columnHeader) 1;
 if (column>0) {
    sheet.getRange(2, column, sheet.getLastRow()-1, 1).clearContent();
}
}
}
}
//Set this function to run on a time trigger of your choosing
 

Комментарии:

1. У вас есть заголовки столбцов с именем "Template 1 Template - Send Status" ?

2. лист объявляется дважды

Ответ №1:

Вы получаете эту ошибку , потому что определяете sheet_id , но пытаетесь использовать sheet_Id . Имя переменной пишется с заглавной буквы по-другому, и это имеет значение для JavaScript.

Кроме того, вы пытаетесь использовать переменную sheetName , но она не объявлена.

Попробуйте переключиться на это:

 function ClearColumn() { //This script will clear ALL the values in the status column
  var sheet_id = "1RnIV4IpQSfeqVh_VDp2Qy0301zgVttSGzY9FI7T3u_w";
  var sheet_name = "My sheet name";
  var columnHeader = "Template 1 Template - Send Status"  //populate with header of column you wish to clear 
  var ss = SpreadsheetApp.openById(sheet_id);
  if (ss) {
   var sheet = ss.getSheetByName(sheet_name); //populate with sheet name of your merge source
    if (sheet) {
      var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
      var column = headers.indexOf(columnHeader)   1;
      if (column > 0) {
        sheet.getRange(2, column, sheet.getLastRow() - 1, 1).clearContent();
      }
    }
  }
}
 

Комментарии:

1. Да, есть столбец с именем «Шаблон 1 Шаблон — Статус отправки». Это та колонка, которую я хочу очистить.

2. Ваш код работает так, что я не получаю ошибку, но он не очищает столбец.

3. Я немного изменил его, чтобы вы также могли указать название листа. Я проверил это, и это работает на меня.