Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript。展开一串数字_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript。展开一串数字

Javascript。展开一串数字,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我的脚本在谷歌电子表格文档中 这是我的剧本: ss=电子表格应用程序。getActiveSpreadsheet() 在我的电子表格的C列中,每行都有一串数字 像这样 C 7317 7316 7315 7314 7313 ​ 当我运行脚本插入许多行时,如何使它自动继续这个递增的数字并将其输入到C列中 谢谢很明显,我不能在没有看到整个过程的情况下给你代码,但我可以给你建议如何解决它: 插入新行之前,将插入新行之后的行中的数字保存到变量中,例如lastNumber=parseInt(insertR

我的脚本在谷歌电子表格文档中 这是我的剧本:

ss=电子表格应用程序。getActiveSpreadsheet()

在我的电子表格的C列中,每行都有一串数字

像这样

 C
7317
7316
7315
7314
7313
​ 当我运行脚本插入许多行时,如何使它自动继续这个递增的数字并将其输入到C列中


谢谢

很明显,我不能在没有看到整个过程的情况下给你代码,但我可以给你建议如何解决它:

  • 插入新行之前,将插入新行之后的行中的数字保存到变量中,例如
    lastNumber=parseInt(insertRowColumnC.getValue())
    确保使用
    parseInt
    将字符串转换为数字(!)
  • 插入新行
  • 现在从上到下迭代所有新插入的行
  • 在每一行上,您首先将
    lastNumber
    减量1,然后将其值写入该行的C列中
  • 更新

    在查看电子表格后,我花了几分钟的时间,得出了以下代码:

    function onEdit(e) {
      var sheet = e.source.getActiveSheet();
      var r = e.source.getActiveRange();
      if (r.getColumn() == 3 && r.getRow() == 2) {
        var value = parseInt(r.getValue());
        if (!isNaN(value)) {
          var next = getFirstRowNumber(sheet);
          if (value > next) {
            var count = value - next;
            sheet.insertRowsAfter(2, count);
            for(var i = 2; i < 2 + count; i++) {
              sheet.getRange(i + 1, 3).setValue(value);
              value--;
            }
            r.setValue('');
    
          } else {
             r.setValue('');
             Browser.msgBox('You need to enter a greater ID.');
          }
        } else if (r.getValue() !== '') {
          r.setValue('');
          Browser.msgBox('You need to enter a valid ID.');
        }
      }
    }
    
    函数onEdit(e){
    var sheet=e.source.getActiveSheet();
    var r=e.source.getActiveRange();
    if(r.getColumn()==3和&r.getRow()==2){
    var value=parseInt(r.getValue());
    如果(!isNaN(值)){
    var next=getFirstRowNumber(表);
    如果(值>下一步){
    var count=值-下一步;
    表.插入箭头后(2,计数);
    对于(变量i=2;i<2+计数;i++){
    表.getRange(i+1,3).setValue(值);
    价值--;
    }
    r、 设置值(“”);
    }否则{
    r、 设置值(“”);
    msgBox('您需要输入更大的ID');
    }
    }else if(r.getValue()!=“”){
    r、 设置值(“”);
    Browser.msgBox('您需要输入有效的ID');
    }
    }
    }
    
    你的问题有点不清楚,但这是你想要的


    每当有人在2/C中插入新ID时,新ID和3/C中的ID之间缺少的ID将自动插入。

    Ivo,我是否可以与您共享该文档。我不确定我是否知道如何实现这一点。
    function onEdit(e) {
      var sheet = e.source.getActiveSheet();
      var r = e.source.getActiveRange();
      if (r.getColumn() == 3 && r.getRow() == 2) {
        var value = parseInt(r.getValue());
        if (!isNaN(value)) {
          var next = getFirstRowNumber(sheet);
          if (value > next) {
            var count = value - next;
            sheet.insertRowsAfter(2, count);
            for(var i = 2; i < 2 + count; i++) {
              sheet.getRange(i + 1, 3).setValue(value);
              value--;
            }
            r.setValue('');
    
          } else {
             r.setValue('');
             Browser.msgBox('You need to enter a greater ID.');
          }
        } else if (r.getValue() !== '') {
          r.setValue('');
          Browser.msgBox('You need to enter a valid ID.');
        }
      }
    }