Haben Sie den Fehler "Diese Operation wird von einer Rückruffunktion nicht unterstützt", wenn Sie das Array @ transponiere

Zunächst entschuldige ich mich für diese Frage, aber GAS ist für mich eine neue Syntax. Ich möchte etwas tun, das in der VBA-Syntax einfach ist, aber nicht in GAS.

Ich möchte einen benannten Bereich in einen anderen benannten Bereich (z. B. 4 Zeilen bis 4 Spalten) auf verschiedenen Arbeitsblättern transponieren. Es gibt Beispiele im Web, die .getDataRange () verwenden, aber ich möchte einen festen benannten Bereich verwenden, unabhängig davon, ob Daten darin enthalten sind oder nicht.

Die Syntax, mit der ich herumspiele, ist die folgende:

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())); 

Nehmen von 4 Zeilen von einem festen Punkt in einem Eingabeformular-Arbeitsblatt (wksInput) zu 4 Spalten in der letzten Zeile eines Datensatzgruppen- / Datenbank-Arbeitsblatts (wksDB)

WotransposeRange ist:

function transposeRange(a)
{
  return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}

Der Fehler ist:

Diese Operation wird von einer Rückruffunktion nicht unterstützt.

Was ist hier falsch

Antworten auf die Frage(2)

Ihre Antwort auf die Frage