编写Google脚本的新手。找到了类似的问题,但没有找到可以解决的答案。我希望将同一行的“ G”列中的单元格编辑为“ y”时,将工作表“ main”上给定行的“ H”列中的单元格值设置为“ Y”。我不能为此使用公式,因为删除“ G”中的值后,我需要保留“ H”中的值。我正在使用的当前代码如下。不返回任何错误,但也不会更改工作表中的任何内容。它不是写为onEdit,因为我正在使用一个单独的onEdit函数来调用多个函数(正确时包括此函数)。
function myFunction3() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("main");
var range = sheet.getActiveCell();
var columnNumberToWatch = 7; // column A = 1, B = 2, etc.
var valueToWatch = "y";
var right = range.offset(0,1);
if (range.getColumn() == columnNumberToWatch && range.getValue() ==
valueToWatch) {
sheet.getRange(right).setValue('Y');
}
}
答案 0 :(得分:0)
在您的描述中,您似乎在说,如果G列中的值为“ y”,那么您希望使“ H”列中的值等于“ Y”。范围= activeCell(),列号为7,valueToWatch =“ y”。
因此,您需要做的是获取范围内的值(例如,活动单元格),并将其旁边的单元格中的值更改为“ Y”。
因此,您的条件语句需要从要测试的内容开始(例如range.getValue(),如果该值在columnToWatch中,则将其旁边的列中的值设置为“ Y”。
要做的第一件事是获取活动单元格的列号。
尝试range.getColumn()并将其分配给新变量(即activeColumnNumber)
然后从range.getValue()开始if语句。
如果(range.getValue =='y'&& activeColumnNumber == 7)等等,它应该可以工作。
答案 1 :(得分:0)
尝试一下-
function myFunction3() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('main');
var range = sheet.getActiveCell();
var columnNumberToWatch = 7; // column A = 1, B = 2, etc.
var valueToWatch = 'y';
if (range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
range.offset(0, 1).setValue('Y');
}
}