我正在创建一个锻炼电子表格来跟踪我每周的表现,每张表都包含一周的锻炼.每张纸(除了第一张之外)都是它之前的纸张的副本,并且有一些我希望从前一张纸上带来的值; 例如,前一周的演习代表人数.
我已经阅读了一些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)
我刚才已经将其作为表格插件提交了,让我们看看它是否很快就会出现
获取当前工作表,您可以使用.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)
| 归档时间: |
|
| 查看次数: |
5042 次 |
| 最近记录: |