0
は私が実行したと思った次のスクリプトを持って実行していないアプリが、私はちょうど今テストしたとき、私は、私は以下のそれを太字で表示しているエラーバックアップGoogleは、スクリプトが
TypeError: Cannot read property "0" from undefined line 31.
を得ました。しかし、それはこの行です。 if(dataA[j][0] && dataA[j][1])
。私は=today()
をA2に入れてスクリプトがアーカイブシートに入力する日付を取得するので、セルの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でしたが、18でなければなりません(41行目、"バックアップデータの更新 ")" – Paul
@Paul 41行目は何ですか? –
これは動作しますが、今はこのエラーを投げ捨てています。 "不正な範囲の幅は1であったが、18でなければならない(41行、"バックアップデータの更新 "ファイル)"これは行です "archiveSheet.getRange(archiveSheet.getLastRow()+ 1,1、data.length、rng.getWidth )+1).setValues(データ); " – Paul