您好,我们遇到一个问题,需要使用工作簿 B 中的信息更新工作簿 A。
工作簿 A 有 30 个工作表,而工作簿 B 只有 1 个。
理想情况下,我们希望将工作簿 B、A 列中的值与工作簿 A 的任何工作表相匹配。成功匹配后,我们希望突出显示红色行,并将工作簿 B 中匹配单元格的 E 列值复制到第一列下带有“退休”、“退休日期”或“退休日期”的匹配单元格的行。
上述列在工作簿 A 中各不相同,具体取决于它们所在的字母列。
如果太复杂,或者我们可以尝试返回指向工作簿 A 中匹配单元格的超链接,然后手动复制日期并突出显示该行。
我一直在尝试各种方法来让它坚持下去,经过几个小时的研究,我认为 Google 脚本是最好的选择。我不确定最好的方法或触发器是什么,因为我对 Google App Scripts 不太熟悉。
这确实可以通过 Google Apps 脚本来完成。你尝试过写剧本吗?工作流程将是这样的:
打开电子表格工作簿 A
将工作簿B中的所有sheet放入数组中
启动 for 循环,迭代工作簿 B 中的每个工作表。
在每张工作表上,获取标题的显示值(第1行)
varsheetHeaders=sheet.getRange(1,1,1,sheet.getMaxColumns).getDisplayValues();
使用indexOf()查找标题数组中列名的索引并加1,因为数组中的第一个位置从0开始(Column A = 1)
var columnNum = SheetHeaders.indexOf("列名") + 1;
将该列中的所有显示值获取到一个数组中,并使用indexOf()查找匹配的行。
var columnValues =sheet.getRange(2,columnNum,sheet.getMaxRows()-1,1).getDisplayValues(); var rowNumber = columnValues.indexOf("搜索值")+2;
现在您已经有了匹配的行号,您可以编写额外的内容 脚本来编辑行并使用sheetHeaders数组来更新您想要的任何列,只要您知道列的名称即可。
循环遍历剩余的纸张,重复该过程。
总而言之,对于初学者来说,这可以通过在 Google Apps 脚本中进行一些尝试和错误来完成。我也有一些工作代码可以与您分享。