gpt4 book ai didi

javascript - 我怎样才能让这个脚本运行 onEdit

转载 作者:行者123 更新时间:2023-11-30 11:12:19 27 4
gpt4 key购买 nike

我试图让它自动运行,但是对于当前的形式,它只有在我手动运行代码时才有效。

我在此工作表中有另一个代码文件,它也使用 onEdit,我如何将相同的 onEdit 合并到此代码中,或者在选择 G 列“完成”时使其运行,然后将 H 列更改为“已发货”

function addValidation() {

// Get the spreadsheet and active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();

// Get the data as an Array you can iterate and manipulate
var data = sheet.getDataRange().getValues();

var rule = SpreadsheetApp.newDataValidation().requireValueInList(["Complete"]).build();

// Loop the sheet
for(var i=0; i<data.length; i++) {


if(data[i][11] == "Complete") {


sheet.getRange(i+1, 8).clear().setDataValidation(rule);

} {
sheet.getRange(i+1, 8).clearDataValidations().setValue("Shipped");
}
}
}

最佳答案

几件事:

在您的 if 语句中,您没有检查 G 列 - 您正在检查 K (11) 列。如果要检查 G,则需要将 if 更改为:

if(data[i][6].toString() == "Complete") {
...
}

您的逻辑是倒退的,您缺少 else 关键字来运行备选方案。照原样,如果它匹配“完成”,它将标记为“已发货”。交换语句以正确填充单元格值。

此外,循环中的字符串检查有点棘手。作为索引的单元格引用是对象,而不是字符串。您需要先使用 .toString() 方法转换您的单元格,然后才能比较直接字符串。

你的整个脚本应该是这样的:

  function addValidation() {

// Get the spreadsheet and active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();

// Get the data as an Array you can iterate and manipulate
var data = sheet.getDataRange().getValues();

// Loop the sheet
for(var i=0; i<data.length; i++) {

// To change which columns you're testing, change the second value.
// ColG = 6, not 11.
// Convert data[i][6] using .toString() to compare the value
if(data[i][6].toString() == "Complete") {

// If it's "Complete," mark Col H as 'Shipped'
sheet.getRange(i+1, 8).setValue("Shipped");

} else {
// If you want something else to happen, add that here.
}
}
}

最后一步是为脚本启用触发器。如果您将函数命名为 onEdit(),它将自行运行,因为编辑是一个简单的脚本。由于它称为 addValidation,因此您需要在 UI 中手动添加 onEdit 触发器。转到“编辑”>“当前项目触发器”,然后单击右下角的“添加触发器”。按照 UI 中的步骤操作,脚本应自行运行。

关于javascript - 我怎样才能让这个脚本运行 onEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191576/

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