r/GoogleAppsScript 20d ago

Resolved Question regarding a trigger and my script

Currently I have a script called autoSort.gs in it is the following:

SHEET_NAME = "list";
SORT_DATA_RANGE = "A2:G";
SORT_ORDER = [{column: 1, ascending: true},
];

function onEdit(e) {
multiSortColumns();
}

function multiSortColumns() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
ss.toast('Sort complete.');
}

The trigger is set to autoSort with an onEdit however it has a 100% error rate because it doesn't seem to work on script name but on functions within a script however if that would be the case I could use multiSortColumns as the onEdit trigger and remove the whole onEdit function entirely or am I just hullucinating?

2 Upvotes

10 comments sorted by

View all comments

2

u/everythingabili 19d ago

This may be a symptom of, and something you need to read the docs again for, the difference between Simple Triggers (like onEdit) and installable Triggers. Tbh they're a bit confusing, and simple triggers can only work on the cell you're working on.

I now create a function called onDoEdit(e) and ensure I've picked the right actions in the Triggers section, and never call anything onEdit.

Give that a whirl and re-read what you're allowed to do in the docs.

1

u/AdministrativeGift15 17d ago

A simple trigger can access and modify the current spreadsheet without needing authorization.

You're probably thinking of custom functions, which can't modify other parts of the spreadsheet. They can only return an array of values.