У меня есть сценарий, который сохраняет данные с одного листа. Я вызываю «формы» на другой лист, который я называю «записями». Функция запускается, когда я нажимаю изображение, установленное в качестве кнопки в книге.перезаписывать/редактировать конкретные записи на существующем листе с помощью vlookup в диалоговом окне сохранения
function SaveEWSReport() {
//Save and clear the form
var ss2 = SpreadsheetApp.getActive();
var source = ss2.getSheetByName('Form');
var records = ss2.getSheetByName(source.getRange('A1').getValues()); //get the tab to send the save data to.
var val = source.getRange('A20:Q20').getValues(); //get the cells with information to copy (contain information concatenated form dropdown cells in B2 to P19)
// get values from zero indext cells and save to records.
// 0,0=StudentB3.0,1=GradeD2.0,2=Date.0,2=FlagC5.0,3=ReferedByD5.7,0=NotesB9:F15.3,0=TeirB5.5,0=TypeB7. Nulls leave spaces.
var write = [val[0][0], val[0][1],null, val[0][2], val[0][3], null, null, val[0][4], val[0][5], val[0][6], val[0][7],null];
records.appendRow(write);
//Clear the cells for the next use.
source.getRange('D2').clearContent();
source.getRange('B3').clearContent();
source.getRange('B3:D3').mergeAcross(); // this merges the cell to self heal potential user error.
source.getRange('B5').clearContent();
source.getRange('D5').clearContent();
source.getRange('B7').clearContent();
source.getRange('B7:F7').mergeAcross(); // this merges the cell to self heal potential user error.
source.getRange('B9').clearContent();
source.getRange('B9:F15').merge(); // this merges the cell to self heal potential user error.
Проблема в том, у меня есть данные, добавить в новую строку
records.appendrow(write)
Однако я хочу, чтобы иметь возможность писать поверх существующей строки. Для примера Если записи лист говорит:
A3 B3 C3
Student 1 , Grade 6 , Note Set
Student 2 , Grade 8 , Note set
Student 3 , Grade 8 , Note set
A7 B7 C7
и добавить новое примечание для студента 2 затем сохранить. Я хочу увидеть то же самое, но вместо этого он добавляет строку так это выглядит следующим образом:
A3 B3 C3
Student 1 , Grade 6 , Note Set
Student 2 , Grade 8 , Note set
Student 3 , Grade 8 , Note set
Student 2 , Grade 8 , Note set
A8 B8 C8
Таким образом, вы видите, что нужно найти способ, чтобы сценарий сделать ВПР и найти студента 2, так что можно написать новые данные по той же строке, и я не знаю, как заставить скрипт писать в эту строку, а не добавлять новую.
Надеюсь, это имеет смысл. Я не часто программирую, поэтому я не уверен, что правильно формулирую это, я искал решения, но я, возможно, искал в неправильных областях свои ограниченные знания и опыт. Если это требует разъяснений, пожалуйста, не стесняйтесь спрашивать.
Вот ссылка на фиктивный лист с полным скриптом. https://docs.google.com/spreadsheets/d/1J2rCtSmt_BM6CozO4EBdlj1YL2wtoW4D4gNCsbalO5M/edit?usp=sharing
Блестящий! Спасибо! – Giantbean