Google apps script 基于星期几的脚本运行部分

Google apps script 基于星期几的脚本运行部分,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我已经编写了这段代码,它是使用GoogleSheets中的脚本触发器函数执行的 function addToList() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s1 = ss.getSheetByName('Accts and Targets'); //source sheet name var t1 = ss.getSheetByName('Over Time'); //target sheet name var sour

我已经编写了这段代码,它是使用GoogleSheets中的脚本触发器函数执行的

function addToList() 
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s1 = ss.getSheetByName('Accts and Targets'); //source sheet name
var t1 = ss.getSheetByName('Over Time'); //target sheet name
var source = s1.getRange("E21:G21");
var last_row = t1.getLastRow();
var target = t1.getRange("A"+(last_row+1));
t1.insertRowAfter(last_row);
source.copyTo((target), {contentsOnly:true});


var tt = SpreadsheetApp.getActiveSpreadsheet();
var v1 = tt.getSheetByName('Accts and Targets'); //source sheet name
var w1 = tt.getSheetByName('Weekly State'); //target sheet name
var source = v1.getRange("b67:i67");
var last_row = w1.getLastRow();
var target = w1.getRange("A"+(last_row+1));
w1.insertRowAfter(last_row);
source.copyTo((target), {contentsOnly:true});
}
总之,该脚本将数据从一个公共源工作表复制并粘贴到两个不同的目标工作表

它被分成两部分,第一部分和第二部分之间用一条空行隔开

这两部分每天都执行(正如我设置的那样——使用触发器函数)

我尝试将这两部分作为单独的函数运行,并使用触发器功能,但第二部分不起作用;而第一个每天都能正常工作

我想要一些帮助来插入将执行第二部分的代码-但只在周一

我看到了一个名为“onWeekDay()”的函数,但我找不到使其工作的正确代码

我想我需要在此行之前添加一条if语句:

var tt = SpreadsheetApp.getActiveSpreadsheet();

只从此行执行到周一函数结束。

Welcome。你说第二部分不起作用是什么意思?扳机响了吗?上是否有错误消息?如何将这两个部分设置为单独的函数?如何为每个单独的函数设置触发器?最初我创建了Addtolist,它只包含前10行代码。然后,我使用了触发器功能,并按照设计为我工作。然后我构建了第二个函数,并尝试在其上使用触发器功能,但没有成功。我记不起错误信息了。第二个功能只需要每周运行一次。当我运行触发器时,它当然会执行两部分。所以现在我需要找到一两行代码(你写的,谢谢),除非是星期一,否则不要执行第二部分。我将在今天晚些时候/明天测试代码。谢谢。IF语句没有在day=Monday(或代码=1中所述)执行。您是否查看了执行情况并查看是否有错误?我没有收到错误消息,它只是没有执行IF语句后面的代码行-尽管今天是星期一。它确实执行前8行代码的预期结果..抱歉,Cooper。。。在我回顾电子表格之后,它似乎确实正确地执行了代码——只是它将新行插入了目标工作表的第10行(这被我构建的图形隐藏了)。它应该在最后一行之后插入该行(与第一部分相同)。我现在正在研究它为什么会这样做。好吧,现在是在调试器中运行它并找出问题所在的时候了。
function addToList() {
  var ss = SpreadsheetApp.getActive();
  var s1 = ss.getSheetByName('Accts and Targets'); 
  var t1 = ss.getSheetByName('Over Time');
  var source = s1.getRange(21,5,1,3);
  t1.insertRowAfter(t1.getLastRow());
  var target=t1.getRange(t1.getLastRow()+1,1);
  source.copyTo((target),{contentsOnly:true});
  if(new Date().getDay()==1) {
    var tt = SpreadsheetApp.getActive();
    var v1 = tt.getSheetByName('Accts and Targets');
    var w1 = tt.getSheetByName('Weekly State');
    var source = v1.getRange(67,2,1,8);
    w1.insertRowAfter(w1.getLastRow());
    var target = w1.getRange(w1.getLastRow()+1,1);
    source.copyTo((target), {contentsOnly:true});
  }
}