Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 自动日期脚本_Google Apps Script - Fatal编程技术网

Google apps script 自动日期脚本

Google apps script 自动日期脚本,google-apps-script,Google Apps Script,我试图创建一个脚本,自动提前一个日期在电子表格。有没有办法做到这一点 例如,在我们的电子表格中,我们可能有4个不同的日期需要提前一个 2/17/2017 2/14/2017 2/15/2017 2/18/2017. 基本上每次我想运行这个脚本时,我都希望电子表格中的所有日期都提前一天。感谢您的帮助 我用一些财务数据对此进行了测试,结果显示效果不错。它跑得相当快 如果您想要电子表格中的所有日期,那么incrDate的第一行应该是 var rng = SpreadsheetApp.getAc

我试图创建一个脚本,自动提前一个日期在电子表格。有没有办法做到这一点

例如,在我们的电子表格中,我们可能有4个不同的日期需要提前一个

2/17/2017

2/14/2017

2/15/2017

2/18/2017.

基本上每次我想运行这个脚本时,我都希望电子表格中的所有日期都提前一天。感谢您的帮助

我用一些财务数据对此进行了测试,结果显示效果不错。它跑得相当快

如果您想要电子表格中的所有日期,那么incrDate的第一行应该是

var rng = SpreadsheetApp.getActiveSheet().getDataRange(); 
我只是回去测试了一下

这是code.gs文件的完整代码,包括菜单。所以你可能想把它弄得更好些

我是个有趣的问题。实际上,最困难的部分是计算isDate函数。 谢谢

函数onOpen(){ var ui=SpreadsheetApp.getUi(); ui.createMenu(“范围工具”) .addItem('将日期增加一天','incrDate') .addToUi(); }; 函数incrDate() { var rng=SpreadsheetApp.getActiveRange();//当前选择 var rngA=rng.getValues(); if(rng.getNumRows()>1&&rng.getNumColumns()>1)//二维数组 { 对于(变量i=0;i1&&rng.getNumColumns()==1)//单列 { 对于(变量i=0;i1)//单行 { 对于(var i=0;i告诉我们到目前为止您尝试了什么。你不能指望别人为你写代码。这就是你学习brother的方法。现在还不清楚,你想要一个在电子表格范围内循环日期的脚本,还是一个在工作表中插入日期的脚本?很高兴能提供一些帮助。这是一个有趣的小项目,尤其是isDate()函数。如果需要更多帮助,请回来。嘿,库珀,快速提问,当我运行公式时,它会请求在Google Drive中编辑和查看文档的权限。当我转到下一个文件时,它会再次询问,有什么想法吗?我经常这样做不同的文件,所以每次我这样做,它要求另一个许可,当我已经给它访问权。这是我不太熟悉的事情。我将对此进行一点研究,但粗略的检查表明,将其放在评论中可能会奏效@OnlyCurrentDoc*/嗨,库珀,很抱歉再次打扰你!出于某种原因,当我运行此脚本时,它会删除电子表格中的所有公式。你知道为什么会这样吗?
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Range Tools')
      .addItem('Increment A Date by one day','incrDate')
      .addToUi();
};

function incrDate()
{
    var rng = SpreadsheetApp.getActiveRange(); // current selection
  var rngA = rng.getValues();
  if(rng.getNumRows() > 1 && rng.getNumColumns() > 1) // two dimension array
  {
    for(var i = 0; i < rngA.length; i++)
    {
      for(var j =0; j < rngA[i].length;j++)
      {

        if(isDate(rngA[i][j]))
        {
          rngA[i][j] = new Date(rngA[i][j].getTime() + (1 * 86400000));
        }
      }
    }
  }
  if(rng.getNumRows() > 1 && rng.getNumColumns() == 1) //single column
  {
    for(var i = 0; i < rngA.length ; i++)
    {
      if(isDate(rngA[i][0]))
      {
        rngA[i][0] = new Date(rngA[i][0].getTime() + (1 * 86400000));
      }
    }

  }
    if(rng.getNumRows() == 1 && rng.getNumColumns() > 1)//single row
  {
    for(var i = 0; i < rngA[0].length ; i++)
    {
      if(isDate(rngA[0][i]))
      {
        rngA[0][i] = new Date(rngA[0][i].getTime() + (1 * 86400000));
      }
    }
  }
  if(rng.getNumRows() == 1 && rng.getNumColumns() == 1) //single cell
  {
    if(isDate(rngA[0][0]))
    {
      rngA[0][0] = new Date(rngA[0][0].getTime() + (1 * 86400000));
    }
  }
  rng.setValues(rngA);
}

function isDate (x)  
{ 
  return (null != x) && !isNaN(x) && ("undefined" !== typeof x.getDate); 
}