Google表格 - 在上一页中的同一单元格中获取价值

Arg*_*us9 2 google-sheets

我正在创建一个锻炼电子表格来跟踪我每周的表现,每张表都包含一周的锻炼.每张纸(除了第一张之外)都是它之前的纸张的副本,并且有一些我希望从前一张纸上带来的值; 例如,前一周的演习代表人数.

我已经阅读了一些API,但似乎无法找到一个函数来选择调用函数的当前工作表.如果它存在,我可以得到索引并从中减去以获得前一个工作表,然后从给定的行和列中获取一个值.但是,我能找到的最接近的是访问"活动"表 - 这似乎是使用setActiveSheet()函数设置的.但是我不知道如何在一个用于多个不同单元格的脚本中使用它.

我在这里遗漏了什么,或者是否有更好的方法来获取有关当前所选工作表的信息?您可以提供的任何帮助都非常有用.谢谢!

[编辑]我的电子表格位于:https://docs.google.com/spreadsheets/d/1b8rDYxbb_6ltI0GvKcmKyz1Y3IV3BSrgWp8Mf2l18cc/edit?usp=sharing

另外,我将在下面发布脚本.

小智 7

我不知道你是否还需要它们,但我制作了这个脚本(我爸爸需要它)

function previousCell(cellLocation) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var curSheet = ss.getActiveSheet();
  var curSheetIndex = curSheet.getIndex();
  var preSheetIndex = curSheetIndex - 2;
  var preSheet = ss.getSheets()[preSheetIndex];
  var targetCell = preSheet.getRange(cellLocation);
  var value = targetCell.getValue();
  if (curSheetIndex == 1){
  return "There is no previous sheet" ;
  }

  else    
  return value;
}
Run Code Online (Sandbox Code Playgroud)

我刚才已经将其作为表格插件提交了,让我们看看它是否很快就会出现


JPV*_*JPV 6

获取当前工作表,您可以使用.getActiveSheet()然后使用.getIndex().然后从那里减去.请注意,.getIndex()是1索引的.因此,第一个工作表将具有索引1.如果要将其与.getSheets()(零索引)结合使用,则必须执行-2才能转到上一个工作表.如果需要,您可能需要构建一些错误处理(如果您已经在第一张表上).例如:

function previous() {
var ss = SpreadsheetApp.getActive();
var curSheet = ss.getActiveSheet();
var prevSheet = ss.getSheets()[curSheet.getIndex() - 2];
prevSheet ? Logger.log(prevSheet.getName()) : SpreadsheetApp.getUi()
    .alert("Active Sheet is the first sheet !");
}
Run Code Online (Sandbox Code Playgroud)