【问题标题】:Run 2 Google Apps scripts运行 2 个 Google Apps 脚本
【发布时间】:2021-04-29 16:18:15
【问题描述】:

我是 Google 应用脚本的新手。 我有 1 个谷歌表,有 2 个标签。我为每个标签页都有一个时间戳脚本。我不知道如何做到这一点,以便如果有人在单元格中键入,时间戳将自动出现。
提前感谢您的帮助。

function onEdit(e){
  myFunction1();
  myFunction2();

function myFunction1();  {
var row = e.range.getRow();
var col = e.range.getColumn();

if(col  === 15 && e.source.getActiveSheet().getName() === "Monthly Reviews"  ){
e.source.getActiveSheet().getRange(row,16).setValue(new Date());

}
function myFunction2();  {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SLP" ) { //checks that we're on "TABNAME" tab or not
var r = s.getActiveCell();
if( r.getRow() == 7 && r.getColumn() == 2 ) { // checks that the cell being edited is in row 7 column 
2
var nextCell = r.offset(1, 0); // looks at the cell in the 1 row down same column
if( nextCell.getValue() === '' ) // checks if that adjacent cell (1 down) is empty or not?
nextCell.setValue(new Date()).setNumberFormat('MM-dd-yyyy HH:mm:ss'); //sets the timestamp when 
original cell is updated
}
 }
 }

}

【问题讨论】:

    标签: javascript function google-apps-script google-sheets arrow-functions


    【解决方案1】:
    function onEdit(e){
    
      var row = e.range.getRow(),
          col = e.range.getColumn(),
          tmshtCell = null;
    
      switch (e.source.getActiveSheet().getName()){
        //checks that we're on "TABNAME" tab or not
        case 'Monthly Reviews' :              
          if (col === 15) tmshtCell = e.range.offset(0,1)
        break;
        //checks that we're on "SLP" tab or not
        case 'SLP':
          // checks that the cell being edited is in row 7 column 2 and checks if that adjacent cell (1 down) is empty or not?
          if (row === 7 && col === 2 && e.range.offset(1,0).getValue() == '') tmshtCell =e.range.offset(1,0)
        break;
      }
      if (tmshtCell) tmshtCell.setValue(new Date()).setNumberFormat('MM-dd-yyyy HH:mm:ss')
    
    }
    

    【讨论】:

    • 嗨。谢谢你的回答。我复制了你的脚本,但给了我一个错误。 TypeError:无法读取未定义的属性“范围”
    • 这个脚本不需要手动运行(从编辑器)。在您的工作表上进行更改,每次您在表格中进行更改时,脚本都会自行运行
    • 哇!与错误一起工作。我还有很多东西要学。非常感谢您的帮助!
    • 随意使用
    【解决方案2】:
    function onEdit(e) {
      const sh = e.range.getSheet();
      if (sh.getName() == "Monthly Reviews" && e.range.columnStart == 15) {
        e.range.offset(0, 1).setValue(new Date());
      }
      if (sh.getName() == 'SLP' && e.range.columnStart == 2 && e.range.rowStart == 7) {
        if (e.range.offset(1, 0).getValue() == '') {
          e.range.offset(1, 0).setValue(new Date());
        }
      }
    }
    

    注意:除非您提供事件对象,否则您无法从脚本编辑器运行此函数。

    【讨论】:

    • 嗨。谢谢你的回答。使用您的脚本时出现错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多