搜索列在Google Spreadsheet脚本中不起作用

时间:2018-06-22 07:59:57

标签: google-apps-script google-sheets

我有一个Google电子表格,其中包含不同的列,并且已将变量作为变量放入代码var COLUMN_URL = 10 ;中,所以现在我想进行更改以搜索表格第一行中的列URL,我写了这段代码:

var COLUMN_URL = function find_COLUMN_URL(){
  var tss = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = tss.getSheets()[0];
  var data = sheet.getRange(1,1,1,1).getValues(); 
  for(n=0;n<data.length;++n){ 
    if(data[0][n].toString().match('URL')=='URL')
      return n;
  }
}

我删除了var COLUMN_URL = 10,但是当我像执行主要功能中的上一个声明一样执行代码时,我不起作用。您知道为什么不起作用吗?谢谢。 >

编辑:我已更改为其他版本,例如:

function find_column_projet(){
  var tss = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = tss.getSheets()[0];
  var lastColumn = sheet.getLastColumn() + 1;
  var data = sheet.getRange(1,1,1,lastColumn).getValues(); 
  for(n=0;n<data.length;n++){ 
 if(data[0][n].toString().match('URL')=='URL')
      COLUMN_URL = n + 1 ;
}

function show_URL(){
  find_column_projet();
   Logger.log('The URL  ' + COLUMN_URL);
   
}

并且在日志中我未定义URL,但我不知道问题出在哪里。我想调出第一行并搜索URL,然后返回列号。

1 个答案:

答案 0 :(得分:1)

我认为您忘记了在第二版代码中存储find_column_projet()函数返回的值:

function show_URL(){
  var COLUMN_URL = find_column_projet();
   Logger.log('The URL  ' + COLUMN_URL);

}

代码的第一个迭代是将COLUMN_URL分配给函数本身:

var COLUMN_URL = function find_COLUMN_URL(){
//...
}

这些操作应该分开时:

function find_COLUMN_URL(){
}

var COLUMN_URL = find_COLUMN_URL();