gpt4 book ai didi

javascript - 检查列标题标题是否与字符串匹配,如果匹配则返回列索引

转载 作者:行者123 更新时间:2023-12-01 00:50:05 24 4
gpt4 key购买 nike

我正在尝试为谷歌表格编写一个脚本,当用户在当前单元格中输入“y”时,该脚本会返回下一个单元格中的日期。我已经有一个脚本可以执行此操作,但我的脚本的问题是它正在评估的列基于列索引,这意味着如果我们的数据集不断增长,那么这些列始终必须保留在同一索引中造成了很多组织问题。

我的问题是..

是否可以在我的代码中查找列标题标题而不是列索引,如果可以,我需要进行哪些更改?

function onEdit(e) {
if ([19].indexOf(e.range.columnStart) == -1 || ['y', 'Y'].indexOf(e.value) == -1) return;
e.range.offset(0, 1)
.setValue(Utilities.formatDate(new Date(), "GMT-5", "MM-dd-yyyy"))
}

此代码当前查看列索引 19,当在列索引 19 的单元格中输入“y”或“Y”时,它会在第 20 列的下一个单元格中输出日期。

如何更改代码以查找列标题=“已回复”的位置?而不是索引?

最佳答案

目标:

如果满足以下条件:

  • 值写入第 19 列 (S)。
  • 第 19 列 (S) 的标题为“已回复?”。
  • 写入的值为“Y”或“y”。

然后在相邻的单元格中写入日期。

<小时/>

代码:

function onEdit(e) {
var sh = e.source.getActiveSheet();
var row = e.range.getRow();
var col = e.range.getColumn();
var value = e.value.toUpperCase();
var header = sh.getRange(1, col).getValue();
if (col === 19 && value === 'Y' && header === 'Replied?') {
sh.getRange(row, 20).setValue(Utilities.formatDate(new Date(), "GMT-5", "MM-dd-yyyy"))
}
}
<小时/>

说明:

我的一切都基于传递给 onEdit 触发器的事件对象。对于var value,我使用了toUpperCase(),这样我们就不必检查“Y”或“y”,而只需单独检查“Y”。另外,我没有使用 range.offset,而是在 getRange().setValue() 中专门指定了第 20 列。

<小时/>

引用文献:

关于javascript - 检查列标题标题是否与字符串匹配,如果匹配则返回列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com