Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 将单个单元格值与每个匹配的值列匹配返回这些行Google apps脚本_Search_Google Apps Script_Match_Copy Paste_Multiple Instances - Fatal编程技术网

Search 将单个单元格值与每个匹配的值列匹配返回这些行Google apps脚本

Search 将单个单元格值与每个匹配的值列匹配返回这些行Google apps脚本,search,google-apps-script,match,copy-paste,multiple-instances,Search,Google Apps Script,Match,Copy Paste,Multiple Instances,我有一个电子表格,有两张标签页。我试图运行一个宏,这样当用户在第二张工作表的B2中输入一个名称时,它将与第一张工作表B列中该名称的每个实例相匹配。然后,我需要复制匹配单元格行中出现的所有数据,并从单元格B3开始粘贴到第二张工作表中。 我使用VBA的经验有限,但没有使用JS/Google应用程序脚本的经验。任何关于如何写这篇文章的帮助都将不胜感激!这是我的第一张照片: function onSearch() { // raw data sheet var original = Spre

我有一个电子表格,有两张标签页。我试图运行一个宏,这样当用户在第二张工作表的B2中输入一个名称时,它将与第一张工作表B列中该名称的每个实例相匹配。然后,我需要复制匹配单元格行中出现的所有数据,并从单元格B3开始粘贴到第二张工作表中。 我使用VBA的经验有限,但没有使用JS/Google应用程序脚本的经验。任何关于如何写这篇文章的帮助都将不胜感激!这是我的第一张照片:

function onSearch() {  
  // raw data sheet
  var original = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 2");
  // search for student sheet
  var filtered = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Student Progress Search");


  // retrieving the values in the raw data array of names
  var searchColumn = 2;
  var lr = original.getLastRow();
  var searchRange = original.getRange(2,searchColumn, lr, 1).getValues();

  // retrieving the name submitted on search
  var inputName = filtered.getRange(2, 2).getValue();

  // loop through all the names in the raw data and identify any matches to the search name
  for (var i = 0; i < lr; i++){
  var dataValue = searchRange[i];
  var r = dataValue.getRow();
  var line = [[r]]; 
  var paste = filtered.getRange(3, 3);

  // if the data is a match, return the value of that cell in the searched sheet
  if (dataValue == inputName){ return paste.setValues(line);
                        }

}

}
函数onSearch(){
//原始数据表
var original=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“表单响应2”);
//搜寻学生资料
var filtered=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“学生进度搜索”);
//检索名称的原始数据数组中的值
var-searchColumn=2;
var lr=original.getLastRow();
var searchRange=original.getRange(2,searchColumn,lr,1).getValues();
//正在检索搜索时提交的名称
var inputName=filtered.getRange(2,2).getValue();
//循环遍历原始数据中的所有名称,并确定与搜索名称的任何匹配项
对于(变量i=0;i
不确定内置查询功能是否适合您。这正是您想要的:

=QUERY(Sheet1!B:B,"select B where LOWER(B) like LOWER('%" &B2& "%')")

例如,如果用户输入'joe',无论大小写,函数都将匹配包含'joe'的任何条目。

您确定需要宏吗?听起来有点过分了。这可以是带有内置查询功能的一行。我可以将其连接到按钮吗?我打算用一个“搜索”按钮来运行宏。嗯,你一定可以编写脚本,将这个公式添加到目标范围(range.setFormula(formula)),并将它连接到一个按钮。这能解决问题吗?如果是,请考虑将原问题标记为已解决。