首先,对于这个问题我很抱歉,但是GAS对我来说是一种新的语法。
我想要做的事情在VBA语法中很简单,但在GAS中不是那么容易。
我想要将一个命名范围转置到另一个命名范围(例如从4行转置为4列),并且这两个命名范围位于不同的工作表上。网络上有使用.getDataRange()的示例,但我希望使用一个固定的命名范围,无论其中是否包含数据。
我正在尝试的语法如下:
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()));
从输入表单工作表(wksInput)的一个固定点取4行到记录集/数据库工作表(wksDB)的最后一行的4列
其中transposeRange
为:
function transposeRange(a)
{
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
错误信息是:
这里出了什么问题?此操作不支持从回调函数中执行。