Google表格脚本 - 根据时间触发器粘贴值

时间:2016-08-15 12:30:15

标签: google-apps-script google-sheets

我试图用一段脚本做一些事情,但却无法完成所有事情。 在我的表格的第2行中,我有一系列连续日期,基于每月的第一天(英国表示法),例如2016年8月1日,2016年1月1日,2016年10月1日。然后我在第14行和第15行中有一个公式,当今天的日期与第2行匹配时,我想修复它(复制/粘贴值)。

我觉得我需要做一些事情 -

  1. 安排脚本每天运行一次,以检查第2行中的任何值是否等于今天的日期。如果是真的那么......
  2. 复制/粘贴第14行和第15行中的数字值以及日期匹配的列。
  3. 可能需要一个索引/匹配来验证第1部分,但我真的不知道该怎么做。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为我现在设法破解了它。在第1行中,我已经输入了一个帮助公式,它根据今天的日期检查第2行中的日期,然后输入" TRUEMONTH"如果匹配则在单元格中。我的笨重的代码如下(它仍然需要整理工作表参考等) -

function ColCheck() {
  var name = "TRUEMONTH";
  var name1 = "PASTE_ME_AS_VALUE";

   var range = SpreadsheetApp.getActiveSheet().getDataRange()
   var values = range.getValues();
   var range1 = SpreadsheetApp.getActiveSheet().getDataRange()
   var values1 = range1.getValues();

  for (var row in values) {
    for (var col in values[row]) {
      if (values[row][col] == name) {

   for (var row1 in values1) {
    for (var col1 in values1[row1]) {
      if (values1[row1][col1] == name1) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
        var row = parseInt(row1) + 1;
        var col = parseInt(col) + 1;
  var source = ss.getActiveSheet().getRange([row],[col]);

  source.copyTo(ss.getActiveSheet().getRange([row],[col]), {contentsOnly: true});   
      }
     }
    }      
   }
  }
 }
}