备份Google应用脚本未运行

时间:2017-12-23 16:34:14

标签: google-apps-script google-sheets

我有以下脚本我认为正在运行但是当我刚刚测试时我得到了错误

  

TypeError:无法从未定义的第31行读取属性“0”。

我在下面加粗了。但正是这条线。 if(dataA[j][0] && dataA[j][1])。我在A2中有=today()来获取脚本用于在存档工作表中输入的日期,因此不确定这是否是问题,因为它在单元格中使用了Google工作表格式“date”。

 function dataBackup() 
{
 var inputSS = SpreadsheetApp.getActiveSpreadsheet();
var archiveSS = SpreadsheetApp.openById('1uPA_4CRmv2wkqe1uljViJ-
1z1NTNDmwS3aE6TDowe88');
var sheetNames = ['AM trip', 'PM trip', 'Pool / Beach', 'Night Dive'];
for (var i=0; i<sheetNames.length; i++) 
{
  var inputSheet = inputSS.getSheetByName(sheetNames[i]);
var archiveSheet = archiveSS.getSheetByName(sheetNames[i]);
var date=new Date(inputSheet.getRange('A2').getValue());     
var rng=inputSheet.getRange('E7:U37');
var dataA=rng.getValues();
var data=[];
for(var j=0;i<dataA.length;j++)
{
  **if(dataA[j][0] && dataA[j][1])**
  {
    data.push([dataA[j].splice(0,0,date)]);
  }
}
var dv=archiveSheet.getRange(archiveSheet.getLastRow(), 1).getValue();
date=(typeof(dv)!='undefined')?dv:'No Date Found';
if (data.length>0) 
{
  archiveSheet.insertRowsAfter(archiveSheet.getLastRow(), data.length);
  archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, data.length, rng.getWidth()+1).setValues(data);
} 
else 
{
  archiveSheet.insertRowsAfter(archiveSheet.getLastRow(), 1);
  archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, 1, 2).setValues([[date, 'No Data']]);
}
}
}

1 个答案:

答案 0 :(得分:0)

简短回答

相关for循环上有拼写错误。上

<?php
        $stories = Wo_GetPosts(array('limit' => 10));
        if (count($stories) <= 0) {
          echo Wo_LoadPage('story/no-stories');
        } else {
          foreach ($stories as $wo['story']) {
            echo Wo_LoadPage('story/content');
          }
        }
        ?>

for(var j=0;i<dataA.length;j++) 替换为i

Extendet回答

关于if = TODAY()导致错误,它不是,但值得注意的是TODAY()返回今天的日期。通过使用getValue()获取日期值,将日期对象传递给Google Apps脚本引擎,而不是

j

var date=new Date(inputSheet.getRange('A2').getValue());