Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Javascript 如果没有,则根据今天的日期将行附加到月报_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如果没有,则根据今天的日期将行附加到月报

Javascript 如果没有,则根据今天的日期将行附加到月报,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在尝试为我的电子表格创建一个谷歌应用程序脚本。它应该运行一个函数,并根据今天的日期将结果返回到电子表格中的特定工作表中。仅将行附加到活动工作表而不是特定工作表时,效果良好。此外,代码在脚本编辑器中保存得很好,因此我假设没有重大错误。也许我在Javascript中把它放错了,或者代码中有一个我不理解的基本错误。我倾向于我的IF-ELSE或者我如何设置活动的电子表格,但不确定。任何帮助都将不胜感激。以下是代码基础: function CheckDateInsertData() { func

我正在尝试为我的电子表格创建一个谷歌应用程序脚本。它应该运行一个函数,并根据今天的日期将结果返回到电子表格中的特定工作表中。仅将行附加到活动工作表而不是特定工作表时,效果良好。此外,代码在脚本编辑器中保存得很好,因此我假设没有重大错误。也许我在Javascript中把它放错了,或者代码中有一个我不理解的基本错误。我倾向于我的IF-ELSE或者我如何设置活动的电子表格,但不确定。任何帮助都将不胜感激。以下是代码基础:

function CheckDateInsertData() {
   function infoDate(){ this gets today's date}
 if (infoDate() >= 2016/01/01 && infoDate() <= 2016/01/31) {
   function GetData1{
      //this retrieves necessary data, working when not using IF ELSE statements and only single active sheet, without calling sheet by name.
      var Data =.......... ;
      appendData(Data);
      function appendData(Data){
         var sheet = SpreadsheetApp.getActiveSpreadsheet();
         sheet.setActiveSheet(sheet.getSheetByName("January"));
         sheet.appendRow(['Date', 'Price', 'Location']);
         }
    }
} else if (infoDate() >= 2016/02/01 && infoDate() <= 2016/02/29){
    function GetData2{
       var Data = ........;
       appendData(Data);
       function appendData(Data){
          var sheet = SpreadsheetApp.getActiveSpreadsheet();
          sheet.setActiveSheet(sheet.getSheetByName("February"));
          sheet.appendRow(['Date', 'Price', 'Location']);
          }
    }
}
}
函数CheckDateInsertData(){ 函数infoDate(){该函数获取今天的日期}
如果(infoDate()>=2016/01/01&&infoDate()=2016/02/01&&infoDate()这就是我如何布置代码的方式:

function CheckDateInsertData() {
  var todaysDate = infoDate();
  var startDate = new Date('2016/01/01');
  var endDate = new Date('2016/01/01');

  var startDateTwo = new Date('2016/02/01');
  var endDateTwo = new Date('2016/02/01');

  if (todaysDate >= startDate && todaysDate <= endDate) {
    GetData('1'); //Pass '1' as the argument
  } else if (todaysDate >= startDateTwo && todaysDate <= endDateTwo) {
    GetData('2');
  };
};

  function appendData(Data, oneOrTwo){
    var sheetToGet = oneOrTwo === '1'?"January":"February";//If, then, else
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    sheet.setActiveSheet(sheet.getSheetByName(sheetToGet));
    sheet.appendRow(['Date', 'Price', 'Location']);
  };

  function GetData(oneOrTwo) {//this retrieves necessary data
    var Data;

    if (oneOrTwo === '1') {
      Data = ['one'];
      appendData(Data, oneOrTwo);
    } else {
      Data = ['two'];
      appendData(Data, oneOrTwo);
    };
  };

  function infoDate() {
    return new Date();// this gets today's date
  };
函数CheckDateInsertData(){ var todaysDate=infoDate(); var startDate=新日期('2016/01/01'); var endDate=新日期('2016/01/01'); var startDateTwo=新日期('2016/02/01'); var endDateTwo=新日期('2016/02/01');
如果(todaysDate>=startDate&&todaysDate=startDateTwo&&todaysDate这就是我如何布置代码的方式:

function CheckDateInsertData() {
  var todaysDate = infoDate();
  var startDate = new Date('2016/01/01');
  var endDate = new Date('2016/01/01');

  var startDateTwo = new Date('2016/02/01');
  var endDateTwo = new Date('2016/02/01');

  if (todaysDate >= startDate && todaysDate <= endDate) {
    GetData('1'); //Pass '1' as the argument
  } else if (todaysDate >= startDateTwo && todaysDate <= endDateTwo) {
    GetData('2');
  };
};

  function appendData(Data, oneOrTwo){
    var sheetToGet = oneOrTwo === '1'?"January":"February";//If, then, else
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    sheet.setActiveSheet(sheet.getSheetByName(sheetToGet));
    sheet.appendRow(['Date', 'Price', 'Location']);
  };

  function GetData(oneOrTwo) {//this retrieves necessary data
    var Data;

    if (oneOrTwo === '1') {
      Data = ['one'];
      appendData(Data, oneOrTwo);
    } else {
      Data = ['two'];
      appendData(Data, oneOrTwo);
    };
  };

  function infoDate() {
    return new Date();// this gets today's date
  };
函数CheckDateInsertData(){ var todaysDate=infoDate(); var startDate=新日期('2016/01/01'); var endDate=新日期('2016/01/01'); var startDateTwo=新日期('2016/02/01'); var endDateTwo=新日期('2016/02/01');

如果(todaysDate>=startDate&&todaysDate=startDateTwo&&todaysDate)有什么数据类型return?
2016/01/01
是一种算术除法,它不是一个
Date
对象或日期的字符串表示形式。它看起来像是在其他函数中包含函数。我不会这样构造代码。你可以将函数放在对象中,将对象放在其他对象中。我想这是可能的在其他函数中包含函数,并让它们运行。您说过代码正在运行。为什么要在其他函数中嵌套函数?啊,您是对的。它以字符串形式返回。因此,如果我去掉函数infoDate()并使其变为var todaysDate=new Date();这将解决该部分问题?那么我如何将其与IF语句中手动输入的日期进行比较?Sandy Good-您能推荐一种更好的方法来确保每个appendData(Data)根据日期返回到单独的工作表吗?appendData()函数内部的唯一性是否正确?不确定什么是最佳做法。什么数据类型是
infoDate()
return?
2016/01/01
是一种算术除法,它不是一个
Date
对象或日期的字符串表示形式。它看起来像是在其他函数中包含函数。我不会这样构造代码。你可以将函数放在对象中,将对象放在其他对象中。我想这是可能的在其他函数中包含函数,并让它们运行。您说过代码正在运行。为什么要在其他函数中嵌套函数?啊,您是对的。它以字符串形式返回。因此,如果我去掉函数infoDate()并使其变为var todaysDate=new Date();这将解决该部分问题?那么我如何将其与IF语句中手动输入的日期进行比较?Sandy Good-您能推荐一种更好的方法来确保每个appendData(Data)根据日期返回到单独的工作表吗?appendData()函数内部的唯一性是否正确?不确定什么是最佳实践。我想我理解它。让我尝试一下,然后在这里返回给您。因此,工作表将始终为1月份?var sheet=SpreadsheetApp.getActiveSpreadsheet();sheet.setActiveSheet(sheet.getSheetByName(“一月”));旧代码可以很好地将行追加到一个工作表中。当我添加setActiveSheet(sheet.getSheetByName(“name”)时);它停止工作了……对此有何想法?请参阅更新的答案。代码现在根据传递给函数的参数值动态更改工作表名称。请参阅带有
sheetoget
变量的if-then-else语句。奇怪的是,我无法使它与else-if一起工作,我想知道电子表格调用是否为correct?var sheet=SpreadsheetApp.getActiveSpreadsheet();sheet.setActiveSheet(sheet.getSheetByName(sheetoget));sheet.appendRow(['Date','Price','Location']));我不能再让它附加任何东西了哈哈。可能必须回到绘图板上。谢谢你的帮助!对于这种情况,我会使用调试器,执行每一行代码,一次执行一行,然后查看值。单击左侧的行号。行号上会出现一个红点。代码将在那里停止。d在屏幕上,不要单击空行。在错误图标的右侧,有一个函数名下拉列表。选择要调试的函数名。单击错误图标。我想我理解了。让我试试看,然后在这里给你回复。因此,工作表将始终为1月份?var sheet=SpreadsheetApp.getActiveSpreadsheet();sheet.setActiveSheet(sheet.getSheetByName(“一月”);旧代码可以很好地将行附加到一张工作表中。当我添加setActiveSheet(sheet.getSheetByName(“名称”)时);它停止工作了……对此有何想法?请参阅更新的答案。代码现在根据传递给函数的参数值动态更改工作表名称。请参阅带有
sheetoget
变量的if-then-else语句。奇怪的是,我无法使它与else-if一起工作,我想知道电子表格调用是否为correct?var sheet=SpreadsheetApp.getActiveSpreadsheet();sheet.setActiveSheet(sheet.getSheetByName(sheetoget));sheet.appendRow(['Date','Price','Location']));我不能再让它附加任何东西了哈哈。可能必须回到绘图板上。谢谢你的帮助!对于这种情况,我会使用调试器,并在上执行每一行代码