[英]Google Sheets add a note by appending column based on matching value
目标是根据选择的值随时间向谷歌表格添加一个或多个注释。
该脚本将允许在工作表中添加一个按钮,并将脚本 function 到 append 运行到下一个可用列。
例如,选择了姓名 Tim。 写了一个注释,按下按钮运行 function 并将其添加到 D 列(因为它是 Tim 的下一个可用列)。
另一个例子,选择了名字 Jeff。 写了一个注释。 由于没有更多列 append 列应自动创建一个新列并允许将注释写入“Jeff's”行,即 G 列
不确定这是否可能,但希望得到一些建议或想法。
一个 | 乙 | C | D | 乙 | F |
---|---|---|---|---|---|
标记 | 乙+ | 部分完成了任务,但需要额外的时间,因为.. | 89433 | 其他 | |
蒂姆 | 一个 | 检查 | |||
杰夫 | C | 不适用 | 作业#4 | 完毕 | 其他 |
史蒂夫 | 一个 | 完全的 | 获取文件 | 已收到 | |
伊隆 | 乙- | 四分之三 | 检查 email |
这就是我认为你想要实现的目标 -
而且,此代码应该可以帮助您入门 -
function main() {
const name = "Steve";
const note = "HELLO"
addNote(name, note);
}
function addNote(name, note) {
const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const values = ss.getDataRange().getValues();
for (var rowIndex = 0; rowIndex < values.length; rowIndex++) {
let row = values[rowIndex];
let nameColumn = row[0];
if (nameColumn == name) {
let rowValues = ss.getRange(`${rowIndex+1}:${rowIndex+1}`).getValues()[0]
.filter(value => value !== "")
let newColIndex = rowValues.length;
ss.getRange(rowIndex+1, newColIndex+1).setValue(note);
}
}
}
虽然,我强烈建议选择其他东西作为唯一标识符而不是名称,因为如果有 2 行具有相同的名称,那么代码实际上会针对两者添加注释(错误地)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.