【问题标题】:Google Sheets Script - paste values based on time trigger谷歌表格脚本 - 基于时间触发器粘贴值
【发布时间】:2016-08-15 12:30:15
【问题描述】:

我正在尝试用一段脚本做一些事情,但无法全部完成。 在我的工作表的第 2 行中,我有一系列基于每个月的第一天的连续日期(英式表示法),例如 01/08/2016、01/09/2016、01/10/2016。然后,我在第 14 行和第 15 行有一个公式,当今天的日期与第 2 行中的日期匹配时,我希望修复它(复制/粘贴值)。

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

  1. 安排脚本每天运行一次,以检查第 2 行中的任何值是否等于今天的日期。如果是真的那么...
  2. 复制/粘贴第 14 行和第 15 行以及日期匹配的列中的数字值。

也许需要索引/匹配来验证第 1 部分,但我真的不知道该怎么做。

感谢您的帮助。

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

我想我现在已经成功破解了它。在第 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});   
      }
     }
    }      
   }
  }
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多