首先为这个问题道歉,但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]; }); });
}
错误是:
回调函数不支持此操作。
这里有什么问题?
答案 0 :(得分:3)
问题不在于转置功能,问题是Google Apps脚本调试器无法通过设计进入回调,因此在调试代码时,不要执行调试步骤,先放置断点并且在调用转置函数之后,为了使调试器跳过该调用。
在Google Apps脚本问题中存在此问题 - > {3}具有来自Google员工的以下评论
来自Issue 4662: Debug breakpoint within the function body of an Array.map() call causes a server error
目前正在按预期工作 - 我们不支持调试器 具有回调函数的断点。因此,这个问题就是 标记为功能请求。
一个相关的问题,但尚无答案,但提供了丰富的评论,帮助我找到上述参考资料
https://code.google.com/p/google-apps-script-issues/issues/detail?id=4662#c3