首页 > 解决方案 > 带有 Google 表格的 Google Apps 脚本执行顺序

问题描述

在以下代码中让 GAS 按我需要的顺序执行函数时遇到问题:

        function setDataValid_(range, sourceRange) {
          var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build();
          range.setDataValidation(rule);
        }

        function onEdit(e){
          var aCell = SpreadsheetApp.getActiveSheet().getActiveCell();
          var aColumn = aCell.getColumn();
          var columnToSortBy = 80;
          var tableRange = "A2:CB300";
          
          if(aColumn == 4 && SpreadsheetApp.getActiveSheet().getName() == 'Sheet1'){
            var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
            var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
            var group = SpreadsheetApp.getActiveSheet().getRange(tableRange);
            group.sort( { column : columnToSortBy, ascending: true } );
            setDataValid_(range, sourceRange);
          }
          }

此代码检查已编辑的列,按引用正在更新的列的另一列对工作表进行排序,并使用正确的命名范围更新以下列中的单元格(依赖下拉更新)。问题是工作表排序不够快,或者功能没有按正确的顺序触发,并且条目最初所在的位置旁边的单元格正在更新(我不想要),旁边的单元格条目结束的地方没有更新(我希望能补救)。

非常感谢任何和所有建议,感谢您的宝贵时间!

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读