javascript - Google表格数据移动器脚本不一致的问题
问题描述
在对许多站点进行了大约两到三个小时的挖掘之后,我将这个功能脚本拼凑在一起,以观察工作表上的“输入”列,并使用 onEdit(),每当将数据放入该列时,将数据移到工作表的下方到该特定行中的下一个可用单元格。
function onEdit(e) {
var s = e.source.getActiveSheet();
var sheetName = 'Pricing Chart';
var colToWatch = 5;
var copyFrom = 5;
var nextEmptyCol = colToWatch + 22;
var emptyCellCheck = s.getRange(e.range.rowStart, nextEmptyCol,1,1);
if (s.getName() !== sheetName || e.range.columnStart !== colToWatch) return;
while (emptyCellCheck.isBlank() !== true){
nextEmptyCol++;
var emptyCellCheck = s.getRange(e.range.rowStart, nextEmptyCol,1,1);
}
if (emptyCellCheck.isBlank()){
s.getRange(e.range.rowStart, copyFrom,1,1)
.copyTo(s.getRange(e.range.rowStart, nextEmptyCol,1,1), {contentsOnly: true}),
s.getRange(e.range.rowStart, copyFrom,1,1).clear({contentsOnly: true});
}
}
具体例子:
在单元格 E5 中,键入“222”。如果 AA5 为空,则将“222”复制到 AA5 中,然后清除 E5。如果 AA5 不为空,它将检查 AB5,然后是 AC5,以此类推,直到找到一个空单元格。然后在我的特定工作表上,它使用该行中的所有数据并显示各种计算(平均值、最大值等),以便这些数据可见,但所有单独的输入都隐藏在幕后。它对于以易于查看和易于与他人共享的格式保存有关许多不同变量的大量数据列表非常有用。
问题是......有时它会按预期进行,找到下一个可用单元格,复制数据,然后擦除原始输入单元格(例如 E5)。但是,有时,它也会擦除数据复制到的单元格(例如 AB5)。大约每十次脚本迭代一次或两次。
所以,我想知道是否有人可以查看我的脚本并给我一些优化它的提示,或者只是做得更好,以便脚本始终如一地正确运行。
解决方案
推荐阅读
- c# - 关于 Microsoft.CognitiveServices.Speech 中的自动语言检测
- c - 链接列表的插入功能是否有任何错误?
- xamarin - 在 Xamarin iOS 中弹出模式页面时出现不工作
- python - Django 查询集正则表达式过滤器给出(3692,'{min,max} 间隔的描述不正确)
- javascript - console.log 什么都不返回
- php - 如何在array_map之后删除数组的数字键
- c# - 如何在不覆盖以前数据的情况下将数据添加到 XML 文件(C#)
- tensorflow - VGG 模型到 tflite 输出的问题
- abap - 向 CL_GUI_SPLITTER_CONTAINER 添加多个控件?
- python - 带有熊猫的 Python 中的 JSON 到 CSV