- Вы хотите добавить 1 ко всем ячейкам D10: D12, H10: H12, D16: D18, H16: H18, D22: D24, H22: H24, D28: D30, H28: H30, D34: D36и H34: H36.
- Вы хотите очистить ячейку, когда значение ячейки меньше 0.
Если мое понимание верно, как насчет этого ответа?Я использовал 2 метода Values.batchGet () и Values.batchUpdate () Sheets API для вашей ситуации, потому что в этом случае я думал, что стоимость процесса Sheets API ниже, чем getValues () и setValues ()SpreadsheetApp.Поэтому я думаю, что есть несколько ответов для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.
Когда вы используете Sheets API, пожалуйста, включите Sheets API в Advanced Google Services и консоли API.О том, как включить API листов, можно узнать по здесь .
Для вопроса 1:
Пожалуйста, измените nextRound()
следующим образом.
function nextRound() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var spreadsheet = SpreadsheetApp.getActive();
var id = ss.getId();
var sheetName = spreadsheet.getSheetName();
var ranges = ["D10:D12", "H10:H12", "D16:D18", "H16:H18", "D22:D24", "H22:H24", "D28:D30", "H28:H30", "D34:D36", "H34:H36"];
ranges = ranges.map(function(e) {return sheetName + "!" + e});
var r = Sheets.Spreadsheets.Values.batchGet(id, {ranges: ranges});
var resource = {
data: r.valueRanges.map(function(e) {return {
range: e.range,
values: e.values.map(function(f) {return [Number(f[0]) + 1]}),
}}),
valueInputOption: "USER_ENTERED",
};
Sheets.Spreadsheets.Values.batchUpdate(resource, id);
}
Для вопроса 2:
Пожалуйста, измените сценарий «Для вопроса 1» следующим образом.
С:
values: e.values.map(function(f) {return [Number(f[0]) + 1]}),
Кому:
values: e.values.map(function(f) {return [Number(f[0]) <= 0 ? "" : Number(f[0])]}),
Примечание:
- Про "Для вопроса 2", про "ясно" вы говорите, я понял, что вы хотите удалить значение.Если вы хотите указать другое значение, измените его.
- Если вы хотите запустить сценарий «Для вопроса 2», когда есть несколько ячеек с пустым значением, измените его следующим образом.
values: e.values.map(function(f) {return [Number(f[0]) <= 0 ? "" : Number(f[0]) || ""]}),
.
Ссылки:
Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.
Редактировать:
Причиной ошибки была пустая ячейка.Поэтому, пожалуйста, измените следующим образом.
Для сценария Вопроса 1, пожалуйста, измените следующим образом.
С:
values: e.values.map(function(f) {return [Number(f[0]) + 1]}),
Кому:
values: e.values ? e.values.map(function(f) {return [f[0] ? Number(f[0]) + 1 : ""]}) : null,
Для сценария Вопроса 2, пожалуйста, измените как
От:
values: e.values.map(function(f) {return [Number(f[0]) <= 0 ? "" : Number(f[0])]}),
До:
values: e.values ? e.values.map(function(f) {return [Number(f[0]) <= 0 || !f[0] ? "" : Number(f[0])]}) : null,