Всего несколько рекомендаций относительно вашего ответа:
function afunc() {
var form = FormApp.openById('MyId');
var PtjGridList = form.getItemById(MyItem).asGridItem();
var ss = SpreadsheetApp.openById("MyGoogleSheet");
var PtjNombre = ss.getSheetByName("MySheet");
//var RowValues = PtjNombre.getRange(2, 5, PtjNombre.getMaxRows() - 1).getValues();
Приведенную выше строку следует заменить на приведенную ниже, и ваш код будет работать быстрее и будет более надежным.
var RowValues = PtjNombre.getRange(2, 5, PtjNombre.getLastRow() - 1).getValues();//replace with this
var ValuesRow = [];
//sheetValues is undefined within this function
for(var i = 0; i<sheetValues.length; i++)
if(RowValues[i][0] != "")ValuesRow[i] = RowValues[i][0];
Было бы лучше переписать вышеуказанную функцию следующим образом:
for(var i = 0; i<sheetValues.length; i++) {
if(RowValues[i][0] != "") {
ValuesRow[i] = RowValues[i][0];
}
}
PtjGridList.setRows(ValuesRow)
//var ColumnValues = PtjNombre.getRange(2, 6, PtjNombre.getMaxRows() - 1).getValues();
Использование getLastRow () намного лучше, поскольку использование getMaxRows () может привести к получению большого количества пустых значений в конце ваших данных, что часто приводит к ошибкам.
var ColumnValues = PtjNombre.getRange(2, 6, PtjNombre.getLastRow() - 1).getValues();//replace with this
var ValuesColumn = [];
//again sheetValues is not defined within this function
for(var i = 0; i < sheetValues.length; i++)
if(ColumnValues[i][0] != "")
ValuesColumn[i] = ColumnValues[i][0];
//would be better to write like this:
Опять-таки, в этой функции не определены значения sheetValues, и следующая перезапись значительно улучшит читабельность.
for(var i = 0; i < sheetValues.length; i++) {
if(ColumnValues[i][0] != "") {
ValuesColumn[i] = ColumnValues[i][0];
}
}
PtjGridList.setColumns(ValuesColumn)
}
getLastRow ()
getMaxRows ()
Я не пытался быть грубым или недобрым. В вашем предыдущем коде были серьезные проблемы, и вы решили их и запустили. Это то, что нам нравится видеть. Хорошая работа.