我有一个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();
最佳答案
即使更改了AthPres
(H3)和AthEmail
(I3)的范围,也要检索sheet.getRange(3, 8)
和sheet.getRange(3, 9)
的值。
如果我的理解是正确的,那么如何使用NamedRange?在使用NamedRange的情况下,即使更改设置为命名范围的范围,NamedRange的范围也会自动修改,并且可以使用NamedRange检索值。我认为您的情况可能有几个答案。因此,请将此视为其中之一。
流程如下。
将“ H3”和“ I3”设置为NamedRange。
从您的问题中使用“ H3”和“ I3”。
使用NamedRange检索值。
示例脚本:
1.设置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"
}
2.检索值
设置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)
}
}
}
}
注意:
这是一个简单的示例脚本。因此,请根据您的情况进行修改。
您还可以在电子表格上手动设置NamedRange。
参考文献:
setNamedRange
NamedRange
如果我误解了您的问题,请告诉我。我想修改它。