【发布时间】:2020-12-25 12:00:45
【问题描述】:
我正在编写一个脚本,该脚本根据行和列的交集来更新 Google 表格中的单元格。我通过遍历唯一教师姓名列表来找到该行。当我找到名称时,我在变量“row”中捕获它的行号。然后,我遍历一系列作为日期的列标题以查找特定日期,并将其列号捕获为变量“列”。但是,当我查看代码中每个对象的结构时,“名称”对象显示为 [[Person1]、[Person2]、...、[PersonX]],而“日期”对象显示为 [[date1 , 日期 2,..., 日期 X]]。我可以很好地遍历名称对象,但日期对象不是那么多,我怀疑这是由于结构造成的。
我知道 getDisplayValues 返回一个字符串,当我需要从单元格中获取日期并将其命名为“dateValue”时,它可以在我的代码的另一个区域正常工作。但是,当我在下面代码的“日期”对象中查找该 dateValue 时,这就是我的代码失败的地方。
下面是代码示例:
function updateTracker(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var teacherName = sheet.getRange('F7').getDisplayValue();
var dateValue = sheet.getRange('N7').getDisplayValue();
var tracker = SpreadsheetApp.openById('AAAbbbCCCxxxYYYzzz111222333');
var tab = tracker.getSheetByName('Tracker');
var names = tab.getRange(1, 4, tab.getLastRow(), 1).getDisplayValues();
var dates = tab.getRange(1, 1, 1, tab.getLastColumn()).getDisplayValues();
for (var i in names) {
if (names[i][0] === teacherName) {
var row = parseInt(i+1);
}
}
for (var j in dates){
if (dates[0][j] === dateValue) {
var column = parseInt(j+1);
}
}
var cell = tab.getRange(row, column).setValue('x');
}
我在 getRange 期望 (number, number) 但它得到 (number, null) 的最后一行出现错误。
对编辑代码有什么建议吗?
【问题讨论】: