我有一个Google脚本程序,可以从Google电子表格中获取信息。变量从特定单元格获取数据。我的问题是如何使我的编码适应性强,因此如果添加或减去行或列,代码将知道在哪里寻找正确的信息?即emailaddresses(var AthEmailData)和Names(AthPresData)
这里是一个例子,
//Athens Variables
var dataA = sheet.getRange(10, 2);
var totalA = dataA.getValue();
var AthPresData = sheet.getRange(3, 8)
var AthPres = AthPresData.getValue();
var AthEmailData = sheet.getRange(3, 9);
var AthEmail = AthEmailData.getValue();
答案 0 :(得分:1)
AthPres
(H3)和AthEmail
(I3)的范围已更改,您也要检索sheet.getRange(3, 8)
和sheet.getRange(3, 9)
的值。如果我的理解正确,那么如何使用NamedRange?在使用NamedRange的情况下,即使更改设置为命名范围的范围,NamedRange的范围也会自动修改,并且可以使用NamedRange检索值。我认为您的情况可能有几个答案。因此,请将此视为其中之一。
流程如下。
首先,请使用此脚本设置NamedRange。 当然,您也可以将“ H3:I3”设置为一个NamedRange。
function myFunction1() {
var s = SpreadsheetApp.getActiveSpreadsheet();
var sheet = s.getActiveSheet();
var AthPresData = sheet.getRange(3, 8); // H3
var AthEmailData = sheet.getRange(3, 9); // I3
s.setNamedRange("AthPresData", AthPresData); // Set "H3" to NamedRange as "AthEmailData"
s.setNamedRange("AthEmailData", AthEmailData); // Set "I3" to NamedRange as "AthEmailData"
}
设置NamedRange后,可以使用此脚本使用NamedRange检索值。即使范围从“ H3”和“ I3”到其他范围,也可以使用NamedRange检索值。
function myFunction2() {
var s = SpreadsheetApp.getActiveSpreadsheet();
var names = ["AthPresData", "AthEmailData"];
var namedRanges = s.getNamedRanges();
for (var i = 0; i < namedRanges.length; i++) {
for (var j = 0; j < names.length; j++) {
if (namedRanges[i].getName() == names[j]) {
var value = namedRanges[i].getRange().getValue();
Logger.log("%s, %s", names[j], value)
}
}
}
}
如果我误解了您的问题,请告诉我。我想修改它。