【问题标题】:Find and replace the text in a cell with Google Script and Google Sheets使用 Google Script 和 Google Sheets 查找和替换单元格中的文本
【发布时间】:2020-09-20 09:07:41
【问题描述】:

我有一个用于收集回复的 Google 表格和另一个用于查看每条记录的报告的选项卡。

我想在单元格中手动添加一个数字写入点(如下图所示),然后单击更新以更新 responses 选项卡中该特定记录的单元格。

我设法根据学生的公式获得了行号:

MATCH($D$3,Responses!D:D, 0)

并且该列始终是响应选项卡的 BG。

如何通过 Google 脚本实现这一点?我有一个想法,但我不知道怎么做。

我的尝试:

row = MATCH($D$3,Responses!D:D, 0)
SpreadsheetApp.getActiveSheet().getRange('BG'+row).setValue(newwritingpoints);

我不知道如何将匹配公式转换为 Google 脚本语法,以及如何将该单元格中的值复制并粘贴到响应选项卡中。

谷歌表格链接:

https://docs.google.com/spreadsheets/d/1dE6UVABhVp7WqEFdC0ptBK2ne6wEA6hCf0Wi6PxcMWE/edit#gid=2032966397

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    我相信你的目标如下。

    • 当通过按钮运行 Google Apps 脚本的Update() 时,您希望检索工作表Report 中的单元格“D3”和“H24”。
    • 您想从工作表Responses 的“D”列中搜索“D3”的值。
    • 当工作表Responses中“D3”的值与“D”列的值相同时,要将“H24”的值放在表中“BG”列的同一行工作表Responses

    对于这个,这个答案怎么样?该示例脚本的流程如下。

    1. 从工作表Report 中的单元格“D3”和“H24”中检索值。
    2. 从工作表Responses 中的“D2:D”单元格中检索值。
    3. 根据检索到的值创建范围列表。
    4. 使用范围列表输入值。

    示例脚本:

    function Update() {
      var spreadsheet = SpreadsheetApp.getActive();
    
      // 1. Retrieve the values from the cells "D3" and "H24" in the sheet `Report`.
      var reportSheet = spreadsheet.getSheetByName("Report");
      var searchText = reportSheet.getRange("D3").getValue();
      var writingPoints = reportSheet.getRange("H24").getValue();
    
      // 2. Retrieve the values from the cells "D2:D" in the sheet `Responses`.
      var responsesSheet = spreadsheet.getSheetByName("Responses");
      var values = responsesSheet.getRange("D2:D" + responsesSheet.getLastRow()).getValues();
    
      // 3. Create the range list from the retrieved values.
      var ranges = values.reduce((ar, [d], i) => {
        if (d == searchText) ar.push("BG" + (i + 2));
        return ar;
      }, []);
    
      // 4. Put the value using the range list.
      responsesSheet.getRangeList(ranges).setValue(writingPoints);
    }
    
    • 在此脚本中,它还假设“D3”的值可能在工作表Responses 的几行中找到。

    参考资料:

    【讨论】:

    • 非常感谢您的回答!这正是我想要的!!!
    • @Registrar 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多