If statement 如果满足某些条件,则复制单元格

If statement 如果满足某些条件,则复制单元格,if-statement,google-apps-script,google-sheets,copy,cell,If Statement,Google Apps Script,Google Sheets,Copy,Cell,我知道已经有很多类似我的主题,但我对编程脚本完全陌生,因此我请求您帮助我解决以下问题: 在B2单元中是用户名,在C2单元中是提交者类型-如果提交者类型是“请求者”,那么B2单元的用户名应该复制到AE2单元-问题是,如果提交者类型更改并更新,我还希望保留以前的用户名 这意味着,首先提交者类型为“Requester”,然后系统应将用户名复制到单元格AE2-如果我行的提交者类型更改,则已复制的用户名不应更改-明白我的意思吗?这应该适用于电子表格的所有行 我尝试了该代码,但出现以下错误: 也许你能帮

我知道已经有很多类似我的主题,但我对编程脚本完全陌生,因此我请求您帮助我解决以下问题:

在B2单元中是用户名,在C2单元中是提交者类型-如果提交者类型是“请求者”,那么B2单元的用户名应该复制到AE2单元-问题是,如果提交者类型更改并更新,我还希望保留以前的用户名

这意味着,首先提交者类型为“Requester”,然后系统应将用户名复制到单元格AE2-如果我行的提交者类型更改,则已复制的用户名不应更改-明白我的意思吗?这应该适用于电子表格的所有行


我尝试了该代码,但出现以下错误:

也许你能帮我改进代码


我改变了这2点:

之前:

 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);

但是,只有一个对象(用户名)是已知的,而不是之前的2个对象-SubsubCell和sUserNameCell再次未定义-这意味着调试器-代码现在看起来是这样的(同样是我的更改,因为只有2个对象而不是1个已知):


您可以这样做:

 var userNameColumn = 2; //Column where the user name is written 
 var subTypeColumn = 3; //Column where the submitter type is written ex. "Requester"
 var sUserNameColumn = 5; //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)
   };  

  }
 }  
var userNameColumn=2//写入用户名的列
var列=3//写入提交者类型的列,例如“请求者”
var-sUserNameColumn=5//保存用户名的列
函数saveUserName(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();

对于(var i=1;我已经试过编码了吗?不,我是一个没有经验的新手;-(还没有-见我给你的帖子好吧,它不是用英语写的,是不是说“单元格超出范围?”如果是这样,你能试着切换变量sUser和子类型吗?)或者是错误的?也许你的意思是:这就是我的意思。如果我从1开始,2,…:function myFunction(){var userNameColumn=1;//写入用户名的列var subsubtype Column=2;//写入提交者类型的列例如“Requester”var sUserNameColumn=3;//保存用户名的列没有错误,但什么也没有发生……还有谁能帮我吗?
var userNameColumn = 2; //Column where the user name is written 

var subTypeColumn = 5; //Column where the submitter type is written ex. "Requester"

var sUserNameColumn = 3; //Column where the user name is saved
 var userNameColumn = 2; //Column where the user name is written 
 var subTypeColumn = 3; //Column where the submitter type is written ex. "Requester"
 var sUserNameColumn = 5; //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)
   };  

  }
 }