Obtendo o erro “Esta operação não é suportada por uma função de retorno de chamada” ao transpor a matriz
Primeiras desculpas por esta pergunta, mas o GAS é uma nova sintaxe para mim. Gostaria de fazer algo simples na sintaxe do VBA, mas não no GAS.
Desejo transpor um intervalo nomeado para outro intervalo nomeado (por exemplo, de 4 linhas a 4 colunas) em planilhas diferentes. Existem exemplos na Web que usam .getDataRange (), mas desejo usar um intervalo nomeado fixo, independentemente de haver dados contidos ou não.
A sintaxe com a qual estou brincando é a seguinte:
var wksInput = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('New');
var wksDB = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Database');
var intDBNewRow = wksDB.getLastRow() + 1;
wksDB.getRange(intDBNewRow, wksDB.getRange('dbContacts').getColumn(), 1,wksDB.getRange('dbContacts').getNumColumns()).setValues(transposeRange(wksInput.getRange('frmVanContacts').getValues()));
Tomando 4 linhas de um ponto fixo em uma planilha de formulário de entrada (wksInput) para 4 colunas na última linha de uma planilha de conjunto de registros / banco de dados (wksDB)
OndetransposeRange
é:
function transposeRange(a)
{
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
O erro é:
Esta operação não é suportada por uma função de retorno de chamada.
O que há de errado aqui?