Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何从工作表中获取特定图表,并使用google apps脚本将其粘贴到另一个工作表的特定范围内?_Google Apps Script_Charts - Fatal编程技术网

Google apps script 如何从工作表中获取特定图表,并使用google apps脚本将其粘贴到另一个工作表的特定范围内?

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.

问题: 我有06张图表。因此,脚本执行以下操作:

它在名为list的工作表中的一个ticker列表上进行迭代

它将在图纸模板的单元格A3中粘贴每个正在迭代的代码

从名为template的图纸复制一个图表

将其粘贴到图纸列表的单元格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.
      }
    }
  }
}
函数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()的方法用于类工作表。但在脚本中,此方法用于类范围。我认为你的问题就是因为这个。
    • 我在评论中已经提到了这一点
  • 为了移动图表的位置,需要更新图表
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 请按如下方式修改您的脚本

发件人: 致: 或者,如果要将图表放入单元格“E5”,请使用以下脚本

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