-1

以下のコードを機能させたいのですが、機能しません-実行しても何も起こりません(エラーもありません)。つまり、ユーザー名(sUserName)がスプレッドシートに保存されません...そして私もそうしません列が1、2、3ではなく2、3、4で始まる理由を理解できません(タイムスタンプは列#1にとどまることができます)-そうであればエラーが発生します。

コードは次のとおりです。

 var userNameColumn = 1; //Column where the user name is written 
 var subTypeColumn = 2; //Column where the submitter type is written ex. "Requester"
 var sUserNameColumn = 3; //Column where the user name is saved

function saveUserName() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
 var rows  = sheet.getDataRange();
 var numRows = rows.getNumRows();

for (var i = 1; i <= numRows; i++) {

 var userNameCell = rows.getCell(i, userNameColumn);
 var subTypeCell = rows.getCell(i, subTypeColumn);
 var sUserNameCell = rows.getCell(i, sUserNameColumn);

  if(sUserNameCell.isBlank() && subTypeCell.getValue() === 'Requester') {
sUserNameCell.setValue(userNameCell)
  };  

 }
}  

私のスプレッドシートとコードへのリンクは次のとおりです。

Google スプレッドシート

4

1 に答える 1

1

これが役立つかどうかを確認してください

function saveUserName() {

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var rows = sheet.getDataRange().getValues();
for (var i = 1; i < rows.length; i++) {
    var userNameCell = rows[i][1];
    var subTypeCell = rows[i][2];
    var sUserNameCell = rows[i][3];
    if (!sUserNameCell && subTypeCell === 'Requester') sheet.getRange(i+1,4).setValue(userNameCell)
    }
}
于 2015-10-11T13:04:37.353 に答える