You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Apps Script中rowOfEmployee函数输出作为saveData的变量

在Google Apps Script中获取rowOfEmployee函数的返回值给saveData使用

提前感谢您的帮助。在Google Apps Script中,我希望将rowOfEmployee函数的输出作为变量editrow供saveData函数使用。能否有人协助我实现该功能?我确信这是非常简单的操作,可能之后会懊恼自己没琢磨出来。

以下是我的两段代码:

function rowOfEmployee() { // 补全缺失的函数声明
  var datasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var data = datasheet.getDataRange().getValues();
  var employeesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Save");
  var employee = employeesheet.getRange("B1").getValue();

  for(var i = 0; i<data.length;i++){
    if(data[i][0] == employee){
      Logger.log((i+1))
      return i+1;
    }
  }
}

function saveData() {
  var datasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var data = datasheet.getDataRange().getValues();
  var employeesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Save");
  var employee = employeesheet.getRange("B1").getValue();
  var editrow = rowOfEmployee //Here I want to take the output from the previous function rowOfEmployee
  var col = datasheet.getLastColumn();
  var target = datasheet.getRange(editrow,col +1);
  var saveEntry = employeesheet.getRange("B2").getValue();

  saveEntry.copyTo(target, {contentsOnly:true})
}

解决方案

你只需要做两个关键修改,同时建议补充异常处理避免报错:

  • 补全rowOfEmployee函数声明:原代码第一段缺失函数定义开头function rowOfEmployee() {,必须补上才能被识别为可调用函数。
  • 正确调用函数获取返回值:在saveData中,要执行函数才能拿到返回值,将var editrow = rowOfEmployee改为var editrow = rowOfEmployee();。
  • 新增异常处理:当找不到匹配员工时,避免后续代码因editrow为undefined报错。

修改后的完整代码:

function rowOfEmployee() {
  var datasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var data = datasheet.getDataRange().getValues();
  var employeesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Save");
  var employee = employeesheet.getRange("B1").getValue();

  for(var i = 0; i<data.length;i++){
    if(data[i][0] == employee){
      Logger.log(i+1);
      return i+1;
    }
  }
  // 未找到匹配员工时返回null并打印日志
  Logger.log("未找到匹配的员工");
  return null;
}

function saveData() {
  var datasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var employeesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Save");
  var editrow = rowOfEmployee(); // 调用函数获取返回值

  // 检查是否获取到有效行号
  if(!editrow) {
    SpreadsheetApp.getUi().alert("未找到对应员工,无法保存数据");
    return;
  }

  var col = datasheet.getLastColumn();
  var target = datasheet.getRange(editrow, col + 1);
  var saveEntry = employeesheet.getRange("B2").getValue();

  saveEntry.copyTo(target, {contentsOnly:true});
}

内容的提问来源于stack exchange,提问作者Alec Aiken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:35:18