Google脚本-字符串与单元格作为函数参数的问题

时间:2019-03-07 21:00:40

标签: google-apps-script

我正在学习Google脚本,遇到一个找不到解决方案的问题。

我有一个函数,它接受几个字符串和一个单元格作为参数。
我认为传递一个单元格与传递它的值不一样(字符串也是btw)

请找到附件代码:

//return id assigned to data(cell) sheetname
function findInColumn(column, data, colName, sheetname) {

  /*
  data = cell (cell value is 'bag_backpack.png') does not work

  var range = SpreadsheetApp.getActiveRange();
  var col = range.getColumn();
  var row = range.getRow();
  var range2 = SpreadsheetApp.getActiveSheet().getRange(row,col+1);
  data = range2.getValue(); (cell value is 'bag_backpack.png')  <---fail too

  data = 'bag_backpack.png';  <---works
  */



  var sheet = SpreadsheetApp.getActive().getSheetByName(sheetname);
  var column = sheet.getRange(column + ":" + column); // like A:A

  var values = [];
  for (var index = 0; index < column.getValues().length; index++) {
    values.push(column.getValues()[index][0])
  }

  var colIndex = getByName(colName, sheetname);
  var rowIndex = values.indexOf(data);
  //grab id value of data
  var range = sheet.getRange(rowIndex+1,colIndex+1);
  var data = range.getValue();

  return data
}

虽然我很重视并需要您的反馈,但请记住我是个新手,在搜索之前,我花了几个小时进行搜索。
谢谢您的帮助。

编辑bag_backpack.png是我正在搜索的一列中要获取该单元格行号的单元格的内容。

 var rowIndex = values.indexOf(data);

返回我需要的索引。

但是...如果我将一个单元格而不是像其他位置那样以bag_backpack.png作为内容的单元格的字符串来馈送给函数,或者甚至从中得出所述值:

  var range = SpreadsheetApp.getActiveRange();
  var col = range.getColumn();
  var row = range.getRow();
  var range2 = SpreadsheetApp.getActiveSheet().getRange(row,col+1);
  data = range2.getValue(); (cell value is 'bag_backpack.png')  <---fail too

在上述情况下:

     var rowIndex = values.indexOf(data);

给出-1而不是所需的索引。

2 个答案:

答案 0 :(得分:0)

您拥有的大多数东西对我来说都没有意义。我猜这就是您想要的。由于我不知道您想要什么,也许您可​​以告诉我我错过了什么。

function findInColumn(column,sheetname) {
  var sh=SpreadsheetApp.getActive().getSheetByName(sheetname);
  var rg=sh.getRange(column + ":" + column); /
  var vA=rg.getValues();
  var values = [];
  for (var i=0;i<vA.length; i++) {
    values.push(vA[i][0]);
  }
  return values
}

答案 1 :(得分:0)

我要感谢大家抽出宝贵的时间来答复。

问题不是代码造成的,而是第一个文件名的ID,名称表中的文件名大写,而活页夹文件中的文件名没有大写(在Tent.png / tent.png上至少5个小时)

我正在附上我完成的作品的链接,希望对任何人都有益。

https://docs.google.com/spreadsheets/d/1jCy1I4r6PeY3kUWrhNno2XO18Jghq6_b1kyN3AflidM/edit?usp=sharing