Google apps script 如何基于单元格值查找特定列索引

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'

在谷歌表格中,我在一个电子表格文件中有两张名为学生和班级的表格。它们中的每一个在某些列标题下都包含大量的数据行

学生的列标题是类的列标题的子集

我希望我的G.A.S代码识别学生中的活动单元格,然后识别该活动单元格的列标题,然后在类的列标题中查找该列标题,最后在类中返回该标题的列索引

这是我写的代码:

  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