Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 setActiveSelection()和setActiveRange()之间有什么区别?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script setActiveSelection()和setActiveRange()之间有什么区别?

Google apps script setActiveSelection()和setActiveRange()之间有什么区别?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我对谷歌应用程序脚本相当陌生,我想知道设置活动范围和设置活动选择之间有什么区别。据我所知,虽然我可以在图纸中设置活动范围或活动选择,但我只能获取活动范围,而不能获取活动选择。还有一个Range类,它具有对范围进行操作的特定方法,但没有选择类 我用了两种方法 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); sheet.setActiveRange(sheet.getRange("B5:

我对谷歌应用程序脚本相当陌生,我想知道设置活动范围和设置活动选择之间有什么区别。据我所知,虽然我可以在图纸中设置活动范围或活动选择,但我只能获取活动范围,而不能获取活动选择。还有一个Range类,它具有对范围进行操作的特定方法,但没有选择类

我用了两种方法

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
sheet.setActiveRange(sheet.getRange("B5:H20"));

sheet.setActiveSelection(sheet.getRange("B5:H20"));
但在web UI或行为中看不到任何差异

Sheets类的Google Apps脚本文档说明:

设置活动范围(范围)

设置激活图纸的激活范围

设置活动选择(范围)

设置此图纸的活动选择区域


但是我找不到任何关于是否使用这两种方法的信息,也找不到它们对代码或用户有什么影响的信息。

也许这不是最有用的答案,但被删除的两种方法之间可能存在历史差异。为了使事情更加复杂,还有[range].activate()--这似乎是完成同样事情的另一种方式。希望这能帮你渡过难关,直到有人对天然气的历史有了更深入的了解


编辑:顺便说一句,我测试了所有三种方法,我看不出任何功能上的差异。

这是一篇老文章,但我有同样的问题,所以我想我应该分享我注意到的一个差异(因为当我交替使用setActiveRange()和setActiveSelection()时,这确实让我感到困惑)

setActiveRange()只接受输入的范围,而setActiveSelection()可以接受范围或A1符号字符串

因此,如果要将A1:D4范围内的单元格设置为活动,可以使用setActiveSelection编写:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

sheet.setActiveSelection("A1:D4");

在使用setActiveRange时,您必须在第二个示例中写入额外的行:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:D4");
sheet.setActiveRange(range);
(源代码)


这可能就是为什么他们一直使用setActiveSelection,因为它在某些情况下简化了事情(1行)。

谢谢!在我看来,setActiveSelection()是历史性的,可能后来添加了更多功能。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:D4");
sheet.setActiveRange(range);