Google Script getActiveRange

时间:2017-02-18 18:15:33

标签: google-apps-script spreadsheet

我有一张名为“Sheet1”和“Sheet2”的两张纸的电子表格。我有一个脚本,单击菜单项运行:

function foo(){

var oSheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"),
oSheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
Logger.log(oSheet1.getActiveRange().getValues());
Logger.log(oSheet2.getActiveRange().getValues());

} // foo

我在Sheet1的浏览器中选择第一个范围,然后单击Sheet2,并选择第二个范围,第一个范围不同。我单击菜单项,启动foo()。记录器查看oSheet1和oSheet2的相同结果。为什么?以及如何在无效纸张上获得选定的范围?

以下是具有完全访问权限的https://docs.google.com/spreadsheets/d/1lfQl9H1PW2lKL-4YJir7uxl-ZMnDR6Zn1_FndG07WGY/edit#gid=1264703349

1 个答案:

答案 0 :(得分:0)

我想我错了。它看起来像是在工作,但是当功能运行时,它正处于活动范围内。我尝试避免使用下面的活动范围,它确实有效。我把Sheet1和Sheet2放在那里用所有的星号,所以我可以看到每个数据集的开头,以确保它们是正确的数据。但即使每个工作表中都有选定的范围,该功能也会在上部工作表上重复选定的数据(无论哪个有效),并且不报告任何错误。

function foo(){

var oSheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getDataRange();
var oSheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getDataRange();
Logger.log('**************************Sheet1**********************' + oSheet1.getValues());
Logger.log('********************Sheet2**************************' + oSheet2.getValues());

} // foo