Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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/9/google-apps-script/6.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
Javascript 适应性电子表格数据收集_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 适应性电子表格数据收集

Javascript 适应性电子表格数据收集,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个谷歌脚本程序,可以从谷歌电子表格中获取信息。变量从特定的单元格获取数据。我的问题是,如何使我的编码具有适应性,这样,如果行或列被添加或减去,代码就会知道从哪里获得正确的信息?电子邮件地址(var AthEmailData)和名称(AthPresData) 举个例子, //雅典变量 var dataA=sheet.getRange(10,2); var totalA=dataA.getValue(); var AthPresData=sheet.getRange(3,8) var AthP

我有一个谷歌脚本程序,可以从谷歌电子表格中获取信息。变量从特定的单元格获取数据。我的问题是,如何使我的编码具有适应性,这样,如果行或列被添加或减去,代码就会知道从哪里获得正确的信息?电子邮件地址(var AthEmailData)和名称(AthPresData)

举个例子,

//雅典变量
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
    athmail
    ,即使
    sheet.getRange(3,8)
    (H3)和
    sheet.getRange(3,9)
    (I3)的范围已更改
如果我的理解是正确的,那么使用NamedRange怎么样?在使用NamedRange的情况下,即使更改了设置为命名范围的范围,NamedRange的范围也会自动修改,并且可以使用NamedRange检索值。我想对你的情况可能有几个答案。所以,请把这看作是其中之一

流程如下

  • 将“H3”和“I3”设置为NamedRange。
    • “H3”和“I3”是根据您的问题使用的
  • 使用NamedRange检索值
  • 示例脚本: 1.集合名 首先,请使用此脚本设置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)
          }
        }
      }
    }
    
    函数myFunction2(){
    var s=SpreadsheetApp.getActiveSpreadsheet();
    变量名称=[“AthPresData”、“AthMailData”];
    var namedRanges=s.getNamedRanges();
    对于(变量i=0;i
    注:
    • 这是一个简单的示例脚本。所以请根据你的情况修改它
    • 您还可以在电子表格上手动设置NamedRange
    参考资料:

    如果我误解了你的问题,请告诉我。我想修改它。

    我的回答是否显示了您想要的结果?你能告诉我这件事吗?这对我的学习也很有用。如果这样做有效,其他与你有相同问题的人也可以将你的问题作为可以解决的问题。如果你对我的答案还有疑问,请随时告诉我。我想学习来解决你的问题。