我最近刚刚使用了另一种方法。每次触发onEdit()时,它都会返回一个事件对象(e),该事件对象为您提供有关正在发生的事情的一些有价值的信息。例如,它为您提供了范围,您可以从e.range中检索该范围。您可以从那里以许多不同的方式浏览并了解例如正在编辑的行。但是e对象中还有更多有用的数据。它为您提供了所编辑单元格的“ oldvalue”(e.oldValue)和新值(e.value)。将所有这些信息混合在一起的一种可能方法是获取与您正在编辑的行相对应的范围,然后检查所有单元格是否为空(但您刚编辑的单元格)以及是否没有oldValue。这不一定与电子表格的最后一行相对应,而与空白行相对应。如果您与填写数据的方式一致,那么这可能对您有用://val = inserted value (e.value);//old = old Value (e.oldValue);//col = number of column being edited//arr = array with the indexes of the columns that should be completed so as to make a new row [0,1,2...n]function isInsert(old, val, col, arr){ if((typeof val != "object")&&!old&&(arr.some(isNotEmpty, col))) return true; else return false;}function isNotEmpty(el){ if(this == el) return true;}