Google apps script setActiveSelection()和setActiveRange()之间有什么区别?
我对谷歌应用程序脚本相当陌生,我想知道设置活动范围和设置活动选择之间有什么区别。据我所知,虽然我可以在图纸中设置活动范围或活动选择,但我只能获取活动范围,而不能获取活动选择。还有一个Range类,它具有对范围进行操作的特定方法,但没有选择类 我用了两种方法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:
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);