Я использую код для переноса скопированных данных с одного листа на другой в листах Google. К сожалению, у меня возникли проблемы, поскольку на другом листе, куда я вставляю другие значения, есть формула в каком-то столбце. вместо того, чтобы быть установленным в следующей возможной доступной строке, «A2» сводится к «A152».

Вот код, который я сейчас использую:

function submit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form");
var mastersheet = ss.getSheetByName("Dump");

var values = [[formSS.getRange("F10").getValue(),
formSS.getRange("C7"),getValue(),
formSS.getRange("C8"),getValue(),]];

mastersheet.getRange(matersheet.getLastRow()+1,1,1,3).setValues(values)
}

Ваша помощь будет оценена!

0
Joni Depp 12 Дек 2019 в 07:52
1
Я бы либо написал функцию для определения следующей пустой строки на основе ваших пользовательских условий, либо, если возможно, включил формулу, когда вы записываете значения. Если вы выберете последний подход, вы можете использовать appendRow () метод: masterSheet.appendRow([F10, C7, C8, "=1+2"])
 – 
Diego
12 Дек 2019 в 08:22
Спасибо, Диего! позвольте мне попробовать этот метод
 – 
Joni Depp
12 Дек 2019 в 09:57

1 ответ

Чтобы ваш код работал, вы должны использовать это:

function submit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formSS = ss.getSheetByName("Form");
  var mastersheet = ss.getSheetByName("Dump");
  var values = [formSS.getRange("F10").getValue(),
                formSS.getRange("C7").getValue(),
                formSS.getRange("C8").getValue()];

  mastersheet.appendRow(values);
}

Вы должны использовать метод .appendRow(), но вам не нужно передавать список как двумерный массив. Также были некоторые опечатки, которые я исправил в предоставленном вами фрагменте кода.

Кроме того, вы можете проверить эту ссылку для получения дополнительной информации:

0
ale13 12 Дек 2019 в 17:35