Google apps script 如何从工作表中获取特定图表,并使用google apps脚本将其粘贴到另一个工作表的特定范围内?
问题: 我有06张图表。因此,脚本执行以下操作: 它在名为list的工作表中的一个ticker列表上进行迭代 它将在图纸模板的单元格A3中粘贴每个正在迭代的代码 从名为template的图纸复制一个图表 将其粘贴到图纸列表的单元格E5中 下面的脚本一直运行到最后一行,然后出现以下错误: TypeError:ss.getRange(…)。insertChart不是函数 以下是我使用的脚本:Google apps script 如何从工作表中获取特定图表,并使用google apps脚本将其粘贴到另一个工作表的特定范围内?,google-apps-script,charts,Google Apps Script,Charts,问题: 我有06张图表。因此,脚本执行以下操作: 它在名为list的工作表中的一个ticker列表上进行迭代 它将在图纸模板的单元格A3中粘贴每个正在迭代的代码 从名为template的图纸复制一个图表 将其粘贴到图纸列表的单元格E5中 下面的脚本一直运行到最后一行,然后出现以下错误: TypeError:ss.getRange(…)。insertChart不是函数 以下是我使用的脚本: function updateTickers() { var ss = SpreadsheetApp.
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.
}
}
}
}
函数updateckers(){
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“列表”);
var tickerRng=ss.getRange(2,1,ss.getLastRow(),1.getValues();
var allSharesSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“模板”);
var startRow=2;
对于(变量a=0;a
非常感谢您的帮助。我相信您的目标如下
- 您要将
工作表中的图表复制到工作表“列表”中ticker
- 要将复制的图纸移动到单元格“E5”中。
- 在脚本中,似乎要将复制的工作表移动到
。这个答案就是这样的getRange(setRow,5)
- 在脚本中,似乎要将复制的工作表移动到
- insertChart()的方法用于类工作表。但在脚本中,此方法用于类范围。我认为你的问题就是因为这个。
- 我在评论中已经提到了这一点
- 为了移动图表的位置,需要更新图表
ss.insertChart(chart1.modify().setPosition(5, 5, 0, 0).build());
参考资料:
insertChart()
的方法适用于课程表。但在脚本中,此方法用于类范围。我认为你的问题就是因为这个。但是我不能理解我在一张表格中得到了06个图表。因此,脚本将更新该工作表,复制其中一个图表并粘贴到另一个工作表中,即单元格E5中。
。我为此道歉。我可以问你目标的细节吗?嗨,塔奈克!这正是我们的意图!谢谢你的回复。我不得不为我糟糕的英语水平道歉。这正是我们的意图代码>,我仍然无法理解我在一张表格中得到了06个图表。因此,脚本将更新该工作表,复制其中一个图表并粘贴到另一个工作表中,即单元格E5中。
。我可以问一下你的目标的细节吗?我的回答告诉你你想要的结果了吗?你能告诉我这件事吗?这对我的学习也很有用。如果这样做有效,其他与你有相同问题的人也可以将你的问题作为可以解决的问题。如果你对我的回答还有疑问,我道歉。那时候,我可以问一下你目前的情况吗?我想研究解决你的问题。谢谢你的回复。我理解你的处境。我想等一下。你好,塔奈克!感谢你的大力帮助。我现在得到以下错误:异常:服务电子表格在访问id为XXXXXXXXXX的文档时失败,它指向代码中的以下行:```allSharesSheet.insertChart(chart1.modify().setPosition(activeCell,9,0,0.build())```@安东尼奥·桑托斯谢谢你的回复。给您带来不便,我深表歉意。根据我的经验,当我遇到同样的错误时,我可以通过重新创建图表来解决错误。如果在你的情况下,这不是直接的解决办法,我再次道歉。
ss.insertChart(chart1.modify().setPosition(setRow, 5, 0, 0).build());
ss.insertChart(chart1.modify().setPosition(5, 5, 0, 0).build());