编辑脚本以应用于所有工作表

时间:2019-05-05 12:37:03

标签: javascript google-sheets

这是我当前正在使用的脚本。我希望它自动应用于文档中的所有工作表。请帮忙。以下是代码。

/**
* Creates a Date Stamp if a column is edited.
*/

//CORE VARIABLES
// The column you want to check if something is entered.
var COLUMNTOCHECK = 1;
// Where you want the date time stamp offset from the input location. [row, column]
var DATETIMELOCATION = [0,1];
// Sheet you are working on
var SHEETNAME = '46'

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  //checks that we're on the correct sheet.
  if( sheet.getSheetName() == SHEETNAME ) { 
    var selectedCell = ss.getActiveCell();
    //checks the column to ensure it is on the one we want to cause the date to appear.
    if( selectedCell.getColumn() == COLUMNTOCHECK) { 
      var dateTimeCell = selectedCell.offset(DATETIMELOCATION[0],DATETIMELOCATION[1]);
      dateTimeCell.setValue(new Date());
      }
  }
}

我希望脚本在每个工作表上执行,以便每当添加新工作表时,脚本都会自动运行,并在我向第1列添加值时帮助我在第二列添加时间戳。

请帮助。

我在这里是一个完整的菜鸟,因此,一些详细的说明将极大地帮助我。

1 个答案:

答案 0 :(得分:0)

基本上,只需删除if语句,该代码将适用于每个工作表。

在下面给出的答案中,我还使用了onEdit触发器返回的一些对象。


/**
* Creates a Date Stamp if a column is edited.
*/

//CORE VARIABLE
// The column you want to check if something is entered.
var COLUMNTOCHECK = 1;

function onEdit(e) {
  var sh = e.range.getSheet();
  if (e.range.columnStart == COLUMNTOCHECK){
    // edited the right column do something
    var targetcell = sh.getRange(e.range.rowStart,2);
    targetcell.setValue(new Date());
  }
  else {
  // do nothing
  }
}