使用 getRange() 和 getValue 搜索和返回数据

问题描述

我正在尝试为我们的志愿者创建一个表格(使用 Google 表格)来搜索、更新和/或添加指导信息 (javascript)。

我从搜索选项(onSearch 功能)开始,它似乎可以工作,但信息没有出现在工作表中(附上仅供参考)。如果您能帮助我完成这项工作,我将不胜感激。

date entry sheet

修订:

function myFunction() {

var ss = SpreadsheetApp.getActiveSpreadsheet(); var formSS = ss.getSheetByName("Form1"); var str = formSS.getRange("D3").getValues()[3]; //搜索Form1$D3中输入的信息

var datasheet = ss.getSheetByName("TRACKING"); var values = datasheet.getRange(2,1,2); //将在其中检索信息的数据表

if (values == str) {
var values1 = values.getValues(); //// 获取搜索请求匹配的跟踪数据
变量 i = 1;

myFunction().onSearch = i

{
  var output = datasheet.getRange();                         ///retrieve information from the Tracking spreadsheet and 
                                                                  //populate the information in the appropiate cells.
              formSS.get("E8").datasheet.getValue(1),formSS.getRange("E10").getdatasheet.getValue(2),formSS.getRange("E12").datasheet.getValue(3),formSS.getRange("E14").datasheet.getValue(4),formSS.getRange("J8").datasheet.getValue(5),formSS.getRange("J10").datasheet.getValue(6),formSS.getRange("J12").datasheet.getValue(7),formSS.getRange("J14").datasheet.getValue(8);   
           return }}}

function onSearch() {

     var SEARCH_COL_IDX=0;
     var RETURN_COL_IDX=0;
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var formSS = ss.getSheetByName("Form1");
``  var datasheet = ss.getSheetByName("TRACKING");
    var str = formSS.getRange("D3").getValues()[3]; //column Index 
    var values    = ss.getSheetByName("Form1").getDatarange().getValues();
    for (var i = 0; i < values.length; i++) {
    var row = values[i];
    if (row[SEARCH_COL_IDX] == str) {
      RETURN_COL_IDX = i+1;
      
      var values = [[formSS.getRange("E8").datasheet.getValue(1),formSS.getRange("E12").datasheet.setValue(3),formSS.getRange("J14").datasheet.getValue(8)]];

}
}
}

解决方法

感谢您的回复。没有人知道答案,我什至读到我所问的问题在 Google 表格中不可用。我决定改为对每个单元格使用过滤器功能。

  • B3 是搜索字段 TRACKING!C:C 是用于检索 信息跟踪!E:E 是返回信息的匹配列。

我是编程新手,但我希望这对某人有所帮助。

=IFERROR(FILTER(TRACKING!C:C,TRACKING!E:E=B3),TRUE)