Google 脚本来匹配 2 个工作簿之间的值并在匹配上执行一系列操作

问题描述 投票:0回答:1

您好,我们遇到一个问题,需要使用工作簿 B 中的信息更新工作簿 A。

工作簿 A 有 30 个工作表,而工作簿 B 只有 1 个。

理想情况下,我们希望将工作簿 B、A 列中的值与工作簿 A 的任何工作表相匹配。成功匹配后,我们希望突出显示红色行,并将工作簿 B 中匹配单元格的 E 列值复制到第一列下带有“退休”、“退休日期”或“退休日期”的匹配单元格的行。

上述列在工作簿 A 中各不相同,具体取决于它们所在的字母列。

如果太复杂,或者我们可以尝试返回指向工作簿 A 中匹配单元格的超链接,然后手动复制日期并突出显示该行。

我一直在尝试各种方法来让它坚持下去,经过几个小时的研究,我认为 Google 脚本是最好的选择。我不确定最好的方法或触发器是什么,因为我对 Google App Scripts 不太熟悉。

google-apps-script
1个回答
0
投票

这确实可以通过 Google Apps 脚本来完成。你尝试过写剧本吗?工作流程将是这样的:

  1. 打开电子表格工作簿 A

  2. 将工作簿B中的所有sheet放入数组中

  3. 启动 for 循环,迭代工作簿 B 中的每个工作表。

  4. 在每张工作表上,获取标题的显示值(第1行)

    varsheetHeaders=sheet.getRange(1,1,1,sheet.getMaxColumns).getDisplayValues();

  5. 使用indexOf()查找标题数组中列名的索引并加1,因为数组中的第一个位置从0开始(Column A = 1)

    var columnNum = SheetHeaders.indexOf("列名") + 1;

  6. 将该列中的所有显示值获取到一个数组中,并使用indexOf()查找匹配的行。

    var columnValues =sheet.getRange(2,columnNum,sheet.getMaxRows()-1,1).getDisplayValues(); var rowNumber = columnValues.indexOf("搜索值")+2;

  7. 现在您已经有了匹配的行号,您可以编写额外的内容 脚本来编辑行并使用sheetHeaders数组来更新您想要的任何列,只要您知道列的名称即可。

  8. 循环遍历剩余的纸张,重复该过程。

总而言之,对于初学者来说,这可以通过在 Google Apps 脚本中进行一些尝试和错误来完成。我也有一些工作代码可以与您分享。

© www.soinside.com 2019 - 2024. All rights reserved.