https://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-를 기반으로 한 내 시트에 대한 스크립트를 사용했습니다. 분류 가 편집 될 때마다 자동으로 분류 특정 시트에 여기를. 그러나 날짜를 정할 수는 없지만 작동이 멈춘 것 같습니다. 나는 이미 몇 가지 조사를했고 분명히 분류 방법이 얼마 전에 변경된 것 같습니다.
이제 기본적으로 필요한 것은 다음과 같습니다. 서로 다른 시트 (20 개 이상)가 많은 Google 스프레드 시트가 있습니다. 예전에 정렬이 필요한 시트가 하나만 있었지만 시간이 지남에 따라 전체가 증가했습니다. 이미 두 장의 정렬이 필요하며 그 수가 훨씬 더 늘어날 가능성이 매우 높습니다. 정렬이 이러한 특정 시트에만 적용된다는 것이 중요합니다. 문제를 더욱 복잡하게 만들기 위해 시트의 순서가 고정되어 있지 않으므로 시트 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)"로 변경하면 "method sort (number, boolean) not found"오류가 발생한다는 것입니다.
하지만 나쁜 소식은 실제로 : 그 코드를 사용하면 a) 오류가 발생하지 않습니다. b) 메시지 상자가 표시되어 실제로 전체 내용을 살펴 봤습니다. c) 실제로 해당 항목을 편집 할 때도 작동합니다 (좋습니다). 그러나 d) 어떤 정렬도 수행되지 않습니다 ...
그래서 누구든지 이것으로 나를 도울 수 있습니까? 나는 그것이 작동하지 않아야 할 실제 이유를 보지 못합니다 (하지만 다시 저는 프로그래머가 아니기 때문에 여기에 도움을 청했습니다. : P). 또한 소개에서 언급했듯이 해당 스크립트를 현재 하나의 시트에만 적용되는 두 개 이상의 특정 시트 (이름 별)에 적용하는 방법이 여전히 필요합니다. 하나 먼저, 지금은 이것으로도 실패합니다 ....
미리 감사드립니다.
베드로
범위가 잘못되었습니다. 시트에 A2:ZZ999
주소가 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});
});
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다