#google-apps-script #google-sheets
Вопрос:
У меня есть следующий сценарий:
function onSelectionChange(e) {
const sheet = SpreadsheetApp.getActiveSheet();
const resultA1Notation = "D2"; // Change
const range = e.range;
const selectedValue = range.getValue();
if (selectedValue === "UPGRADE") {
let numberValue = range.offset(0, -1).getValue();
if (numberValue !== "Free") {
numberValue = numberValue.slice(0, -1); // Remove P
const resultCell = sheet.getRange(resultA1Notation);
resultCell.setValue(resultCell.getValue() - numberValue);
sheet.range.offset(0, -1).getValue();
resultCell.setValue(resultCell.getValue() 15);
}
}
}
Я не могу заставить его работать до конца. Я пытаюсь изменить эти две строки:
sheet.range.offset(0, -1).getValue();
resultCell.setValue(resultCell.getValue() 15);
Я пытаюсь заставить скрипт смещать ячейку на -1, например, если это B1, она перейдет в A1. Любая помощь, которую он оценил, спасибо!
Комментарии:
1. В чем заключается проблема, с которой вы сталкиваетесь? Кроме того, можете ли вы поделиться копией листа?
Ответ №1:
Я считаю, что ваша цель заключается в следующем.
- Вы хотите активировать одну левую боковую ячейку для текущей ячейки, когда значение выбранной ячейки
UPGRADE
равно, а значение одной левой боковой ячейки для текущей выбранной ячейки-нетFree
.- В качестве примера ситуации, когда выбрана ячейка «B1», вы хотите выбрать ячейку «A1».
- Вы хотите изменить следующую часть своего сценария.
sheet.range.offset(0, -1).getValue(); resultCell.setValue(resultCell.getValue() 15);
В этом случае, чтобы выбрать ячейку, я думаю, что activate
этот метод можно использовать. Когда ваш сценарий изменяется, он становится следующим.
От:
sheet.range.offset(0, -1).getValue();
resultCell.setValue(resultCell.getValue() 15);
Для:
if (range.columnStart > 1) {
range.offset(0, -1).activate();
}
- Когда выбран столбец «А»,
range.offset(0, -1)
возникает ошибка. Поэтому я использовал утверждение ifif (range.columnStart > 1){}
.
Ссылка:
Комментарии:
1. Я попытался поэкспериментировать с предоставленным сценарием и изменил его на » диапазон.смещение(0, -3).активировать(); resultCell.setValue(resultCell.GetValue() 15)», но затем вторая строка, которую я пытаюсь изменить, не работает.