自动移动输入

时间:2016-12-24 11:30:45

标签: javascript google-apps-script google-sheets

我正在尝试让某人输入某个单元格“M19”移动到“Z1”,如果该单元格已满,则将其移至“Z2”,依此类推。

目前我的代码准确地将第一个和第二个输入“M19”移动到“Z1”和“Z2”中,但之后只是停止做任何事情。

function myFunction()
{
  var ss = SpreadsheetApp.getActiveSheet();
  var vZPos = "M19";
  var zZPos = "Z1";
  var vonZelle = ss.getRange(vZPos); //InputCell
  var zuZelle = ss.getRange(zZPos);  //FirstOutputCell
  var i = 0;
  var c = 2; 
  var cTos = c.toString();
  var naechsteZuZelle = zZPos.replace("1", cTos);  
  var naechsteZuZelleRange = ss.getRange(naechsteZuZelle);  //ChangingOutputCell

  do
  {
    if (zuZelle.isBlank() == true && c == 2)
    {
      vonZelle.moveTo(zuZelle);
      i++;
    }
    else 
    {
      if (naechsteZuZelleRange.isBlank() == true)
      {      
        vonZelle.moveTo(naechsteZuZelleRange);
        i++;
      }
      else
      {
        c++;
      }
    }
  }
  while (i == 0);
}

由于我不擅长编码,所以我对如何继续做事情有点了解,我会对如何解决我的问题提出任何帮助和/或解释。

P.S。由于我用德语编码,一些变量名称可能看起来很奇怪,如果有任何问题我会尽力翻译/详细说明它们。

1 个答案:

答案 0 :(得分:0)

变化:

  else
  {
    c++;
  }

要:

else
  {
   c++;
   cTos = c.toString();
   var naechsteZuZelle = zZPos.replace("1", cTos);  
   var naechsteZuZelleRange = ss.getRange(naechsteZuZelle)
  }

它不在你的循环中。