2016-07-30 5 views
1

シート:ユーザーの電子メールの行の[0] リスト、ユーザーの名前の行の リスト[5] AppscriptグーグルaddEdtor(行[5])permission.valueエラー

は、このラインから離れて正常に動作するスクリプトを実行します

DriveApp.getFileById('1phsJs4ik2a654645645GOJs4gBVVKd2OmlHtlPk').makeCopy(sheetName,dest).addEditor(owner); 

ERROR:無効な引数:permission.value(21行、ファイルの "コード")

i 'は "[email protected]"' と '所有者' を置き換えるが、私は必要なときに罰金作品リストを反復するには

全コード:

// Showing it has been sent. 
var Confirmed = "Confirmed"; 

function DistributeTemplate() { 
var sheet = SpreadsheetApp.getActiveSheet(); 
var startRow = 2; // First row of data to process 
var specify = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); 
var counter = specify.getRange("A1").getValue(); //HOW MANY TO DO 
var numRows = counter; // Number of rows to process 
var dataRange=sheet.getRange(startRow, 1, numRows, 5) 
var data = dataRange.getValues(); 
var dest = DriveApp.getFolderById('INSERTFOLDERID'); 
for (var i = 0; i < data.length; ++i) { 
var row = data[i]; 
var sheetName = row[0] 
var FlexisheetSent = row[2]; 
var owner = row[5]; 
Logger.log(owner); 
    if (FlexisheetSent != Confirmed) { //Only send once 
    //DriveApp.getFolderById(dest).addEditor(owner); 
    DriveApp.getFileById('INSERTTEMPLATEIDGOOGLESHEET').makeCopy(sh eetName,dest).addEditor(owner); 
    sheet.getRange(startRow + i, 3).setValue(Confirmed); 
    // The cell is updated instantly to avoid any issues. 
    SpreadsheetApp.flush(); 
    } 
} 
} 

答えて

1

は値row[5]はありません。このラインで

var dataRange=sheet.getRange(startRow, 1, numRows, 5) 

あなたが使用しているgetRange()のパラメータの設定は次のとおりです。あなたの5つの要素[[0, 1, 2, 3, 4]]の配列を取得しますgetRange(row, column, numRows, numColumns)

が、あなたはを参照してください。インデックス番号と配列インデックスを参照する配列要素は0から始まります。

電子メールがE列にある場合は0〜var owner = row[4];、スプレッドシートのF列にある場合はvar dataRange=sheet.getRange(startRow, 1, numRows, 5)var dataRange=sheet.getRange(startRow, 1, numRows, 6)となります。

また、電子メールを持つセルに先頭または末尾の空白やその他の特殊文字が含まれていないことを確認してください。

+0

これは完璧な意味合いで動作します。ありがとうございます! – Haytch

+0

お手伝いいただきありがとうございます。また、Stack Overflowへようこそ。この回答があなたの問題を解決した場合は、大きいチェックマークをクリックして承認済みとしてマークしてください。そうすれば、Googleを使用して質問を見つけたユーザーは、その答えが正しいことをより確実に確認できます。 – ocordova

+0

それは終わった!私が知っていたなら、私はこれを早くやっただろう。あなたは時間があれば私の他の投稿をチェックすることができますか? Ocordovaにもう一度感謝します! – Haytch

関連する問題