如何更新现有行(而不是更新创建的新行)

时间:2017-12-26 15:52:26

标签: google-apps-script google-sheets row cell edit

我创建了一个包含代码的工作表,该工作表能够使用条件(在特定单元格中键入数字时)将名为“ASSISTANT”的工作表中的所需行发送到另一个名为“DATA”的工作表。我们的想法是将汽车分配给在分配时注册“日期输入”值的用户,并在收到时添加“日期输出”值。

我想解决的问题是,当我将汽车分配给用户时,提交的行包含“数字,名称,编号,日期”值,当我们收到汽车时,脚本再次提交同一行包含相同的先前值并将“date out”值添加到DATA表中的新行,所以最后,我有两行:第一行在分配时,第二行在收到时。

我希望我的脚本在“DATA”表中搜索fisrt提交的行并用新的行值覆盖它,而不是创建一个新的。

这是包含问题的代码的表单:

https://docs.google.com/spreadsheets/d/1X27afOLzvljYjM8IgkoM3f0jtpQHXDmZRm75VmLvAwY/edit#gid=0

作为提示,请在以下链接中填写:

How to add data to a specific row in Google Sheets using Google Script

...名为“Sandy Good”的用户在该帖子上回复了其他成员,其中的代码显示了如何搜索行并通过覆盖来“更新”它。问题是我不知道如何将代码实现到我想要的那个代码上。也许那篇文章是关键...或者可能不是,我只是想知道如何解决它。

我从编程开始,我试图自己完成这个脚本,研究和尝试,但现在我被卡住了。

1 个答案:

答案 0 :(得分:1)

解决了一个变通方法。该脚本将在包含常规列表的工作表的第一个位置添加一行。我已经为每辆车创建了一张工作表,现在脚本将在每个车辆列表的第一个位置添加一行,因此很容易找到汽车的最后一个“日期”行,始终是第一个。当想要写入添加“日期输出”时,脚本只需要覆盖所需汽车的第一行(包含该汽车列表的工作表名称与汽车编号匹配)。

 targetSheet.insertRowAfter(1);   // Specify first row of destination sheet for receive content
 targetSheet.getRange("A2").setValue(cell1);   // Insert that content

不同之处在于,当您指定汽车时,会有一个“targetSheet.insertRowAfter(1)”,当您收到它时,则没有。

嗯,这篇文章没有人帮我。无论如何,我学到了很多其他问题...并且从其他用户那里得到了很好的回答,所以非常感谢大家!