Мне нужны значения для перехода к определенным ячейкам, возможно ли это сделать с помощью одной функции записи?
Да.
Допустим, это ваш лист -
-----------------------------
| A | B |
-----------------------------
1 | Name | Age |
-----------------------------
2 | Alice | 25 |
-----------------------------
3 | Bob | 30 |
-----------------------------
Мы делаем var values = sheet.getDataRange().getValues()
.Мы получаем -
values = [ [ Name, Age ],
[ Alice, 25 ],
[ Bob, 30 ] ]
Допустим, вы хотите изменить A2
на Jane
.Какие индексы вы используете для доступа к нему внутри values
массива?
Вы можете видеть из листа, его 2-й ряд, 1-й столбец.Но values
- это двумерный массив, индексы будут values[1][0]
, потому что индексы в массивах начинаются с 0 .
Итак, фактические индексы для доступа к A2
внутри values
будет values[1][0]
, строк и столбцов, каждый на 1 меньше строки листа, индексы столбцов .
. Позволяет изменить A2
на Jane
.values[1][0] = 'Jane'
Как только вы измените массив values
, это изменение будет в реальном времени, в памяти, готово для доступа к другой операции или расчету .Но это еще не записано в лист .
Допустим, вам нужно изменить B2
, так как Jane
равно 26
.Итак, вы делаете это изменение сейчас?Или сначала записать предыдущее изменение в лист?Желательно сделать это изменение сейчас и записать оба изменения в одну операцию.
Теперь, каковы индексы в values
для B2
?.B2
- 2-й ряд, 2-й столбец в листе.В массиве values
это values[1][1]
.
. Позволяет изменить B2
на 26. values[1][1] = 26
.Теперь оба изменения живы.Если мы напишем values
на листе, оба изменения будут сохранены.
Часть, которая доставляет мне неприятности, когда дело доходит до этого, задает диапазон для установки значений, как сделатьЯ передаю значения [j] и [I] каждой записи.
Теперь вы знаете, как работают листовые индексы и values
индексы.Используйте индексы values
, чтобы изменить / установить значения, а затем записать values
в лист.