簡體   English   中英

Google Apps Script自動(編輯時)排序(僅適用於特定工作表)

[英]Google Apps Script automatic (on edit) sort (specific sheets only)

我以前的工作表腳本是基於https://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-排序這里這對自動排序時,它被編輯的特定片材。 但是,我無法確定日期,因為它似乎已停止工作。 我已經進行了一些研究,顯然排序方法在前一段時間已更改。

現在基本上我需要做的是:我有一個Google電子表格,里面有很多不同的工作表(20多個),我過去只有一個工作表需要排序,但是隨着時間的流逝,整個事情已經增長了。我已經需要整理兩張紙了,而且這個數字很有可能會進一步增加-至關重要的是,排序僅適用於這些特定的紙。 而且使問題更加復雜的是,工作表的順序尚未確定,因此我無法使用工作表ID,因為它們可能會更改,因此必須使用工作表名稱(也可以更改工作表名稱,但不能更改工作表名稱)非常有可能-並且如果發生這種情況,該腳本會很快適應)。

需要排序的工作表在大約6-7列中包含大量數據,並具有標題行,應按第一列進行排序,最上面的數字最少。

到目前為止,我想到的是以下內容:

function AutoSortOnEdit(){
  // select active sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // select correct sheet
  var sheet = ss.getSheetByName("testsheet456");

  // select range (exclude top row)
  var range = sheet.getRange("A2:ZZ999");

  // actually do the sorting
  range.sort({column: 1, ascending: true});

 Browser.msgBox("sort done"); 
}

消息框就在那兒,所以我看到事情已經執行了,只要它正常工作,它就會被刪除。 我還在編輯時從電子表格添加了自定義觸發器。

時髦的是,當我將range.sort更改為“(1,true)”而不是現在的內容時,它引發錯誤“找不到方法sort(number,boolean)” ...

但實際上,壞消息是:有了該代碼,a)我沒有出錯b)出現消息框,所以它實際上遍歷了整個過程,c)當我實際編輯該事物時它也起作用(這很好)但是d)沒有進行任何排序...

那么,有人可以幫我這個忙嗎? 我沒有真正的理由不應該這樣做(但是再說一次,我不是程序員,所以這就是為什么我來這里尋求幫助。 此外,如導言所述,我仍然需要一種將該腳本應用於兩個(或多個)特定工作表(按名稱)的方法,因為它目前僅用於一個工作表,但我想使其適用於首先,現在它甚至失敗了...。

提前致謝,

彼得

您的范圍無效。 如果工作表中沒有地址為ZZ999單元格,則A2:ZZ999不起作用。 您可以使用sheet.getLastRow()sheet.getLastColumn()使其工作。 要排序幾張紙,您需要一個包含所有紙的數組,然后循環遍歷。 例如,使用forEach循環。

function AutoSortOnEdit() {
  var sheetNames = ["testsheet456", "testsheet457", "testsheet458"];

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  sheetNames.forEach(function(name) {
    var sheet = ss.getSheetByName(name);
    var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
    range.sort({column: 1, ascending: true});
  });
}

這也很好用:

function AutoSortOnEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  sheet.getLastColumn());
    ss.sort(1, false);
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM