Если вы хотите вручную управлять этой функцией для других ячеек, один простой способ - сказать функции прочитать имя ячейки, которое вы где-то ввели, скажем, как Z1. Затем вызовите свою функцию с тем именем, которое вы прочитали ранее. Пожалуйста, обратитесь к коду ниже.
function increment() {
var sheetAustin = SpreadsheetApp.getActive().getSheetByName('Austin Test')
var cellname1 = sheetAustin.getRange('Z1').getValue() // Get cell name 1
var cellname2 = sheetAustin.getRange('Z2').getValue() // Get cell name 2
var s = SpreadsheetApp.getActive().getSheetByName('Austin Test').getRange(cellname1)
var t = SpreadsheetApp.getActive().getSheetByName('Austin Test').getRange(cellname1)
var tur = parseInt(t.getValue())
var sur = parseInt(s.getValue())
s.setValue(sur + tur)
}
Этот модифицированный код будет читать любое имя ячейки, которое вы ввели в Z1 и Z2 соответственно, а затем выполнять свою работу как обычно. Имейте в виду, что здесь нет проверки на сбой, поэтому существует вероятность ошибки, например, при вводе неверного имени ячейки. Введите G4 в Z1 и G3 в Z2, затем запустите сценарий, и вы получите точный результат в виде кода, который вы нам показали.
Изменяя способ, которым вы используете getRange () в цикле, вы можете даже позволить скрипту рассчитать результаты всех ваших команд за раз ... при условии, что все столбцы, которые вам нужно вычислить, находятся рядом друг с другом. .
Вот ваш код с циклом для всей команды:
function increment() {
var col = 7 // Column G is no.7
for(i = col, i < col + 35, i ++)
var s = SpreadsheetApp.getActive().getSheetByName('Austin Test').getRange(4, col) // Get row 4, column 7, which is G4
var t = SpreadsheetApp.getActive().getSheetByName('Austin Test').getRange(3, col) // Get row 3, column 7, which is G3
var tur = parseInt(t.getValue())
var sur = parseInt(s.getValue())
s.setValue(sur + tur)
}
}