在多张纸上加盖日期的脚本

劳伦森林

我对这一切都非常非常陌生。我需要帮助,我正在尝试使用脚本编辑器在另一列中输入内容时将日期静态标记在一列中。我想出了如何为一个选项卡执行此操作,但我需要在同一工作表中的多个选项卡上执行此操作,并且我正在努力使其正常工作。有没有一种代码可以解决这个问题?这是我用于一个选项卡的脚本:

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

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

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());
      }
  }
}

提前感谢您的时间。

灾难代码

要在多个工作表上继续使用该功能,您可以在可接受的名称数组中检查工作表名称。

function onEdit() {

    var colToCheck = 9;

    // Offset from the input [row, column]
    var dateOffset = [0, -8];

    // Sheets to proceed on
    var sheetNames = ['Sheet 2', 'Sheet 3'];

    var sheet = SpreadsheetApp.getActive().getActiveSheet();
    var name = sheet.getName();

    if (sheetNames.indexOf(name) > -1) {

      var cell = sheet.getActiveCell();
      var col = cell.getColumn();

      if (col == colToCheck) {

          var dateTimeCell = cell.offset(dateOffset[0], dateOffset[1]);
          dateTimeCell.setValue(new Date());
        }
    }
}

参考

数组

指数()


编辑一个

如果需要多个选项,可以将它们设置在数组中。数组中元素的顺序必须匹配。

此代码假定时间戳始终位于同一行。

function onEdit() {

    var sheetNames = ['Sheet 2', 'Sheet 3'];
    var colsToCheck = [9, 15];
    var colOffsets = [-8, -4];
    
    var sheet = SpreadsheetApp.getActive().getActiveSheet();
    var name = sheet.getSheetName();
      
    var index = sheetNames.indexOf(name);
    
    if (index > -1) { 
      var cell = sheet.getActiveCell();
      var col = cell.getColumn();
    
      if (col == colsToCheck[index]) { 
          var dateTimeCell = cell.offset(0, colOffsets[index]);
          dateTimeCell.setValue(new Date());
        }
    }
}

编辑两个

对于那些更喜欢物体的人

function onEdit() {

    var sheets = {
    
        'Sheet 2': {
            checkCol: 9,
            offset: -8
        },
    
        'Sheet 3': {
            checkCol: 15,
            offset: -4
        }
    };

    var sheet = SpreadsheetApp.getActive().getActiveSheet();
    var name = sheet.getSheetName();
  
    var settings = sheets[name];

    if (settings) { 
      var cell = sheet.getActiveCell();
      var col = cell.getColumn();

      if (col == settings.checkCol) { 
          var dateTimeCell = cell.offset(0, settings.offset);
          dateTimeCell.setValue(new Date());
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自动在多张纸上打印日期戳

来自分类Dev

清除多张纸上的内容

来自分类Dev

多张纸上的vlookup值的总和

来自分类Dev

将多张纸上的数据合并到一张纸上

来自分类Dev

如何从闪亮的数据下载到多张纸上?

来自分类Dev

批处理在单张纸上打印多张图像

来自分类Dev

用VBA粘贴到多张纸上

来自分类Dev

VBA代码在多张纸上过滤

来自分类Dev

为多张纸上的单元格着色

来自分类Dev

使用Inputbox在多张纸上插入Xnumber行

来自分类Dev

如何在多张纸上插入月/年?

来自分类Dev

VBA-根据数据范围删除匹配的数据及其在多张纸上的行

来自分类Dev

使用终端在一张物理纸上打印多张单独的图片

来自分类Dev

如何自动将多张纸中的数据填充到一张纸上

来自分类Dev

计算某个单词出现在多张纸上的所有实例

来自分类Dev

在一张纸上建立表格,其中包含来自多张纸的数据以及不同的列长

来自分类Dev

尝试在多张纸上的特定行/范围内查找最后一个非空单元格

来自分类Dev

加盖锁的说明。爪哇

来自分类Dev

在四张纸上隐藏除今天以外的所有列(Google Spreadsheets脚本)

来自分类Dev

ReferenceError: "e" 未定义 | 仅在一张纸上运行多个脚本的困难

来自分类Dev

如何在另一张纸上找到最大和最小日期?

来自分类Dev

Shell脚本删除日期

来自分类Dev

Shell 脚本日期

来自分类Dev

Google应用脚本-如何创建具有多张表格的Excel文件并附加到MailApp?

来自分类Dev

使用Google Apps脚本从主幻灯片台复制多张幻灯片

来自分类Dev

对每个请求加盖2个动态queryParam

来自分类Dev

Google脚本-添加日期至日期-

来自分类Dev

Bash脚本来识别日期

来自分类Dev

Bash脚本转换日期格式

Related 相关文章

热门标签

归档