将自动对我的工作表之一进行排序的代码

时间:2019-01-02 16:16:09

标签: google-apps-script google-sheets

我有3列工作表:协调员,工作人员,得分。

我只想自动对一张纸(得分最高的工人)进行排序。

我使用了自动触发功能(没有if语句),但是它适用于所有工作表,而且我不知道如何将其限制为一张工作表。

      String[] lines = content.split("\n");
      int linesCount = 0;
            for (int i = 0; i < lines.length; i++) {
                linesCount++;
                linesCount += metrics.stringWidth(lines[i]) / (jTextArea.getColumns() * columnWidth);
            }
      jTextArea.setRows(linesCount);

2 个答案:

答案 0 :(得分:0)

说明

请查看代码中的注释。

function Sortowanie() {

    if (SpreadsheetApp.getActiveSpreadsheet().getName() == 'Name of sheet') {
    // This line is looking at the name of the spreadsheet, not the name of the sheet
    // Use the line below instead

    // if (SpreadsheetApp.getActive().getActiveSheet().getName() == 'Name of sheet') {

        var spreadsheet = SpreadsheetApp.getActive();
        spreadsheet.getRange('A1:C35').activate();
        // You either need to include the name of the sheet when calling getRange
        // from the Spreadsheet: getRange('Sheet1!A1:C35')
        // Or you need to call getRange from the Sheet:

        /*
        var sheet = SpreadsheetApp.getActive().getActiveSheet();
        sheet.getRange('A1:C35'),activate();
        etc.
        */

        spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1)
          .sort({column: 3, ascending: false});
        spreadsheet.getRange('E9').activate();
    }
}

最低工作密码

我不确定为什么要先获得一个范围然后再将其抵消,而只是获得偏移范围即可。

function sort() {

    var spreadsheet = SpreadsheetApp.getActive();
    var sheet = spreadsheet.getActiveSheet();
    var sheetName = sheet.getName();

    if (sheetName === 'Name of sheet') {

        var range = sheet.getRange('A2:C34');

        range.sort({column: 3, ascending: false});
    }
}

答案 1 :(得分:0)

弄清楚是否可以共享电子表格将更容易。但是我认为这很接近。

function Sortowanie(e) {
  var rg=e.range;
  var sh=rg.getSheet();
  if(sh.getName()=='Name of Sheet'){
    var srg=sh.getRange('A2:C35');
    srg.sort({column: 3, ascending: false});
  }
}