问题:我一张纸上有06张图表。因此脚本执行以下操作:
它遍历名为list的Sheet中的ticker列表。
它将每个正在迭代的股票代码粘贴到表单模板的单元格A3中
从名为模板的工作表中复制其中一个图表
粘贴到表单列表的单元格E5中
下面的脚本一直运行到最后一行,然后我得到了以下错误:TypeError:ss.getRange(…(.insertChart不是函数
这是我正在使用的脚本:
function updateTickers() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("List");
var tickerRng = ss.getRange(2, 1, ss.getLastRow(), 1).getValues();
var allSharesSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template");
var startRow = 2;
for (var a = 0; a < tickerRng.length; a++) {
var ticker = tickerRng[a][0];
if (ticker == 'nndm') {
if (ticker[0] != '') {
var setRow = parseInt(a) + startRow;
allSharesSheet.getRange("a3").setValue(ticker);
var chart1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(ticker).getCharts()[0];
ss.getRange(setRow, 5).insertChart(chart1); //This is where the error pops up.
}
}
}
}
感谢您的帮助。
我相信你的目标如下。
- 您想要将
ticker
的工作表中的图表复制到工作表";列表"> - 您要将复制的工作表移动到单元格";E5";。
- 在脚本中,似乎要将复制的工作表移动到
getRange(setRow, 5)
。这个答案随之而来
- 在脚本中,似乎要将复制的工作表移动到
修改点:
- insertChart((的方法用于Class Sheet。Ref但是在您的脚本中,此方法用于Class Range。我认为你的问题是由于这个原因。
- 我已经在评论中提到了这一点
- 为了移动图表的位置,需要更新图表
当以上几点反映到您的脚本中时,它变成如下。
修改的脚本:
请按如下方式修改您的脚本。
发件人:ss.getRange(setRow, 5).insertChart(chart1); //This is where the error pops up.
收件人:ss.insertChart(chart1.modify().setPosition(setRow, 5, 0, 0).build());
或者,您想将图表放在单元格"中;E5";,请使用以下脚本。
ss.insertChart(chart1.modify().setPosition(5, 5, 0, 0).build());
参考文献:
- 插入图表(图表(
- 修改((