Я использую электронную таблицу, которая содержит несколько листов, в Sheet3 я ввожу некоторые данные и запускаю код автоматической сортировки, который сортирует их по возрастанию по столбцу D.
Пример листа 3 | Пример Sheet1
«Имя» и «местоположение» в Sheet1 импортируются из Sheet3, поэтому они меняются местами, когда Sheet3 выполняет сортировку, однако проблема в том, что информация от D до F(Sheet1) не поменяется местами и будет отображаться для неправильных людей.
Это скрипт, который я использую:
Немного изменил его, чтобы он работал на конкретном листе, так как я не делалне нужно автоматически сортировать весь документ за один раз.
/*
* @author Mike Branski (@mikebranski)
* @link https://gist.github.com/mikebranski/285b60aa5ec3da8638e5
*/
var SORT_COLUMN_INDEX = 4;
var ASCENDING = true;
var NUMBER_OF_HEADER_ROWS = 2;
var SHEET_NAME = 'Sheet3';
var activeSheet;
function autoSort(sheet) {
var s = SpreadsheetApp.getActiveSheet();
if (s.getName() == SHEET_NAME) {
var range = sheet.getDataRange();
if (NUMBER_OF_HEADER_ROWS > 0) {
range = range.offset(NUMBER_OF_HEADER_ROWS, 0, (range.getNumRows() - NUMBER_OF_HEADER_ROWS));
}
range.sort( {
column: SORT_COLUMN_INDEX,
ascending: ASCENDING
} );
}
}
function onEdit(event) {
var s = SpreadsheetApp.getActiveSheet();
if (s.getName() == SHEET_NAME) {
var editedCell;
activeSheet = SpreadsheetApp.getActiveSheet();
editedCell = activeSheet.getActiveCell();
if (editedCell.getColumn() == SORT_COLUMN_INDEX) {
autoSort(activeSheet);
}
}
}
function onOpen(event) {
var s = SpreadsheetApp.getActiveSheet();
if (s.getName() == SHEET_NAME) {
activeSheet = SpreadsheetApp.getActiveSheet();
autoSort(activeSheet);
}
}
function onInstall(event) {
onOpen(event);
}
Так что, в основном, когда я редактирую Sheet3 и он выполняет автоматическую сортировку, я хочу, чтобы строки от D до F в Sheet1 продолжалис перепозиционированием, которое происходит от Sheet3.Надеюсь, мне удалось правильно объяснить, чего я хочу.
Я безуспешно пытался заставить его работать;Я не могу найти правильный способ сделать это, особенно из-за того, что таблица Sheet1 имеет другой диапазон.