我创建了下面的脚本,该脚本从onedit函数运行,用于编辑单元格J1。该图存在于标题为“每日数据”的工作表中。它将使用的数据来自标题为“长期数据”的工作表。
我使用以下链接作为指导:https : //developers.google.com/apps-script/reference/spreadsheet/embedded-chart。
感谢您的任何帮助。
function onEdit(e) {
//This IF statement ensures it will only run when cell J1 is edited:
if (
e.source.getSheetName() == "Daily Data" &&
e.range.columnStart == 10 &&
e.range.columnEnd == 10 &&
e.range.rowStart >= 1 &&
e.range.rowEnd <= 1
) {
var spreadsheet = SpreadsheetApp.getActive();
var daily_data = spreadsheet.getSheetByName("Daily Data");
var LTD_data = spreadsheet.getSheetByName("Long Term Data");
//ABOVE HAS BEEN TESTED AND RUNS SUCCESFULLY. THE BELOW DOES NOT...
var chart = daily_data.getCharts()[0];
var range = LTD_data.getRange("B2:J3")
chart = chart.modify()
.addRange(range)
.build();
spreadsheet.updateChart(chart);
}
}
;
Daily Data
使用Google Apps脚本的工作表中的图表。如果我的理解是正确的,那么下面的修改如何?
updateChart()
是类表的方法。但是在您的脚本中,updateChart()
用于Class Spreadsheet。这样,脚本将无法运行。当上述要点反映到您的脚本时,它将变为以下内容。
在此模式中,范围被添加到现有范围。
spreadsheet.updateChart(chart);
至:
daily_data.updateChart(chart);
在这种模式下,现有范围将被删除,而新范围将被添加。
var chart = daily_data.getCharts()[0];
var range = LTD_data.getRange("B2:J3")
chart = chart.modify()
.addRange(range)
.build();
spreadsheet.updateChart(chart);
至:
var chart = daily_data.getCharts()[0];
var range = LTD_data.getRange("B2:J3")
var ranges = chart.getRanges();
chart = chart.modify();
ranges.forEach(function(range) {chart.removeRange(range)});
var modifiedChart = chart.addRange(range).build();
daily_data.updateChart(modifiedChart);
如果我误解了您的问题,而这不是您想要的结果,我深表歉意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句