Google apps script 如何基于单元格值查找特定列索引
在谷歌表格中,我在一个电子表格文件中有两张名为学生和班级的表格。它们中的每一个在某些列标题下都包含大量的数据行 学生的列标题是类的列标题的子集 我希望我的G.A.S代码识别学生中的活动单元格,然后识别该活动单元格的列标题,然后在类的列标题中查找该列标题,最后在类中返回该标题的列索引 这是我写的代码:Google apps script 如何基于单元格值查找特定列索引,google-apps-script,google-sheets,find,Google Apps Script,Google Sheets,Find,在谷歌表格中,我在一个电子表格文件中有两张名为学生和班级的表格。它们中的每一个在某些列标题下都包含大量的数据行 学生的列标题是类的列标题的子集 我希望我的G.A.S代码识别学生中的活动单元格,然后识别该活动单元格的列标题,然后在类的列标题中查找该列标题,最后在类中返回该标题的列索引 这是我写的代码: var spreadsheet = SpreadsheetApp.getActive(); var sheet = spreadsheet.getSheetByName('Students'
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Students');
var targetSheet = spreadsheet.getSheetByName('Classes');
var sheetColumnIndex = sheet.getActiveCell().getColumnIndex();
var sheetColumnHeader = sheet.getRange(1,sheetColumnIndex).getValues();
var numRows = 1 // The column headers of CLASSES are available in 1 row
var numColumns = 22 // The number of column headers in CLASSES;
var searchRange = targetSheet.getRange(1,1,numRows, numColumns);
// get the values in an array
var values = searchRange.getValues();
// examine the values in the array
for (var y = 0; y < values.length; y++) {
if(values[0][y] == sheetColumnHeader){
var columnIndexInSourceSheet = y + 1;
};
};
return columnIndexInSourceSheet;
};
var spreadsheet=SpreadsheetApp.getActive();
var sheet=spreadsheet.getSheetByName('Students');
var targetSheet=spreadsheet.getSheetByName('Classes');
var sheetColumnIndex=sheet.getActiveCell().getColumnIndex();
var sheetColumnHeader=sheet.getRange(1,sheetColumnIndex.getValues();
var numRows=1//类的列标题在一行中可用
var numColumns=22//类中列标题的数量;
var searchRange=targetSheet.getRange(1,1,numRows,numColumns);
//获取数组中的值
var values=searchRange.getValues();
//检查数组中的值
对于(变量y=0;y
但不幸的是,代码不起作用!我不知道为什么 它不起作用,因为您正在将字符串与数组进行比较。方法返回值的2D数组。例如,如果标题为“name”,它将返回
var values = range.getValues();
Logger.log(values); //[["name"]]
对sheetColumnHeader变量使用“getValue()”方法。谢谢您的回答。我按照你说的修改了代码,但没用。还是不行。代码总是将变量y返回为1,并且变量ColumnIndexSourceSheet总是未定义!!你应该提供更多关于你所做的事情和预期结果的信息。堆栈溢出用于询问特定的编程相关问题。这里没有人会逐行调试您的代码。而且,“它不起作用”也不是真正的答案。有关错误的信息必须全面,才能包含新代码。关于
sheetColumnHeader
,@Anton Dementiev提到了它。此外,在脚本中,作用域无法返回columnIndexInSourceSheet
。例如,请在for循环之前声明var columnIndexInSourceSheet
。此时,请删除var columnIndexInSourceSheet=y+1的var
代码>。