В настоящее время у меня есть этот скрипт, который добавит строку под моим «startRow».Код работает, но он статичен;для целей этого примера моя строка равна 40, потому что я хочу добавить новую строку под содержимым, которое у меня сейчас есть в строке 40.
function addRows(){
var startRow = 40;
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
sheet.insertRowsAfter(startRow , 1);
}
Однако, если бы я вставил строку в свой листвыше строки 40, вышеупомянутое содержимое сместится в строку 41, и я хочу вставить строку под ней, но поскольку этот код статичен, он этого не сделает.
На отдельном листе, вЯчейка A1, я использую функцию =row()
, чтобы получить номер той строки, которую я хочу, поскольку это будет динамическим.Если я вставлю строку над ним, число изменится с 40 на 41, сохранив тот же пример.
Я хочу знать, есть ли способ, которым я могу преобразовать этот код в getValue
этой ячейки,и вставьте строку под номером строки, указанным в этой ячейке, таким образом, независимо от того, сколько строк вставлено / удалено выше строки 40, она точно будет знать, в какую строку я хочу вставить мою новую строку.
Например, скажем, я вставляю 3 строки выше 40, я хочу, чтобы этот скрипт извлек значение из моей =row()
ячейки (A1), которая была бы ("43"), и вставил новую строку под строкой 43.
Заранее спасибо!
РЕДАКТИРОВАТЬ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Чтобы дать дополнительный контекст, почему яДелая это, я создаю электронную таблицу для предложений, каждый раздел оборудования имеет свои собственные проверенные выпадающие данные для продуктов и субпродуктов.
Каждый раздел будет иметь собственную кнопку справа, которая добавит дополнительнуюпозиция (строка) под so в каждый раздел можно добавить больше продуктов, сохраняя при этом валидацию данных в раскрывающемся списке.(Я получил только через 3, когда я понял свою проблему).
Снимок экрана электронной таблицы
Каждый из них работает со своей версией этой функции, первая в startRow = 40
, вторая в startRow = 43
, третья в startRow = 46
.Когда я тестирую любой из скриптов (кнопок) по отдельности, они работают так, как они должны, и добавляют строку.Но, скажем, я запускаю первый сценарий, а затем пробую второй сценарий, он все равно добавит строку после 43, в то время как мне нужно , чтобы добавить до 44, поскольку все было сдвинуто вниз по строке с недавно вставленнымrow.
Вот как выглядит электронная таблица, если я запускаю only вторую кнопку.Это правильно и будет продолжать добавлять строки там, где и должно, так как startRow
не изменился и все еще 43.
Пример запуска второй кнопки
Но скажем, что ясначала запустите кнопку, и она вставит строку после строки 40 , а затем Я пробую вторую кнопку, она все равно вставит строку после 43, даже если все было сдвинуто вниз, и мне нужно вставить ее после44 теперь, чтобы сохранить проверку данных из предыдущего ряда.
Пример кнопки запуска сначала 1, затем 2
Надеюсь, это прояснит причину этого проекта.