javascript - getRange、getDataRange 和 getActiveRange 之间的区别?

标签 javascript excel google-apps-script spreadsheet

如果问题不是很明显,我对 Google Apps 脚本还很陌生。我正在尝试编写一个电子表格函数,该函数遍历工作簿中表单提交表的每一行,并根据第一个使用 for 循环的单元格的值更新第二个工作表/范围(在同一工作簿中)。但是,当我运行该函数时没有任何反应。

我很确定错误出在我定义相关范围的方式上,但我不是 100% 确定。这是我所写内容的修改版本:

function update() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var secondSheet = ss.getSheets()[1];
  var submissionSheet = ss.getSheets()[0];

  var secondRowEnd = secondSheet.getLastRow();
  var submissionRowEnd = submissionSheet.getLastRow();

  var secondColumnEnd = secondSheet.getLastColumn();
  var submissionColumnEnd = submissionSheet.getLastColumn(); //used to define ranges dynamically

  var secondRange = secondSheet.getValues();
  var submissionRange = submissionSheet.getValues();

  for(var i = 2; i <= submissionRowEnd; i++) {

    var rock = secondRange.getCell(i, 1).getValue();
    var paper = secondRange.getCell(i, 2).getValue();
    var scissors = secondRange.getCell(i, 3).getValue();

    var status = secondRange.getCell(i, 4).getValue();
    var forStatus = secondRange.getCell(i, 5).getValue();

    if (status === "Do X!") {
      for(var j = 2; j <= submissionRowEnd; j++) {

        var jrock = submissionRange.getCell(j, 1).getValue();
        var jpaper = submissionRange.getCell(j, 2).getValue();
        var jscissors = submissionRange.getCell(j, 3).getValue();
        var jstatus = submissionRange.getCell(j, 4).getValue();

        if (status === forStatus) {
          jrock.setValue(rock);
          jpaper.setValue(paper);
          jscissors.setValue(scissors);
        } else { /*do nothing*/ }
      }
    }
  }

几个星期以来,我一直在关注这段代码的略有不同的版本,所以任何人和所有关注此代码的人都将不胜感激!

最佳答案

只需查看 Spreadsheet Service 的 Apps 脚本 API 引用.所有功能都记录在那里。以下是您需要的方法说明的链接:

getRange() 有多个实现。

关于javascript - getRange、getDataRange 和 getActiveRange 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38461098/

相关文章:

php - Excel VBA : Dynamic Variable Name

node.js - Google Apps 脚本 - 扣环 - 无法创建脚本

javascript - 创建一个谷歌应用程序脚本,从 myDrive 读取文件名并根据文件名将其放置在文件夹中

javascript - 如何从日期/时间戳中减去两个不同的日期?

javascript - 在netsuite中,如何为保存的搜索中不存在的选定记录编写curl脚本?

java - xlsx4j - 如何在电子表格中设置列宽?

javascript - 如何在 php 页面中显示 javascript

java - 在 Excel 中查找合并的单元格,拆分单元格并将其写入新电子表格?

javascript - 使用 jQuery 根据选项值文本而不是值设置下拉列表选定值

javascript - 无法设置 null 错误的属性 'innerHTML'