【发布时间】:2021-03-13 21:14:28
【问题描述】:
所以我可以使用多个脚本,其中一个是根据 C 列(日期)自动对工作表进行排序的脚本。
这是样本表:https://docs.google.com/spreadsheets/d/1nP4kZEikx1li8JNwCjsEc3ooadr0fiboglUizUcUdAQ/edit?usp=sharing
基本上,这个想法是让人们能够在底部添加行,添加信息,并在设置日期后立即将其移动到它所属的位置。 问题是我需要在不同日期之间留一个空格,但是手动添加一个空行是行不通的,因为自动排序会将它发送到底部,因为日期单元格是空白的。
无论如何,是否使用 OnOpen 触发器将每个日期与每一天的子标题行分组?基本上可以识别来自 C 列的不同值并为每个值添加一行或从字面上添加任何具有颜色格式的文本?因为我有自动排序脚本,所以即使它们被添加到工作表的末尾也没关系,因为除了 D 列之外的所有其他单元格都是空的,它应该只在每个日期的顶部发送它。
我确实遇到过这个解决方案https://stackoverflow.com/a/55944980/13895051 但我似乎无法让它工作。
这是我正在使用的自动排序脚本,以防万一
SHEET_NAME = "North Tonawanda";
SORT_DATA_RANGE = "A:S";
SORT_ORDER = [
{column: 3, ascending: true}, // 3 = column number, sorting by descending order
{column: 4, ascending: true} // 1 = column number, sort by ascending order
];
function onEdit(e){
multiSortColumns();
}
function multiSortColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
ss.toast('Sort complete.');
}
我过去只使用过几个脚本,所以我不知道自己在做什么,而且数据透视表并不是一个真正的选择。我将不胜感激! 谢谢你!
【问题讨论】:
-
首先,关于
I did come across this solution https://stackoverflow.com/a/55944980/13895051 but I can't seem to make it work.,很抱歉我的回答对您的情况没有用处。顺便说一句,当我看到您的示例电子表格时,函数名称为onEdit的函数用于每个容器绑定脚本中。在这种情况下,您的脚本没有正确运行。那些onEdit函数与异步进程一起运行。所以当你测试onEdit的脚本时,除了你要测试的函数onEdit之外,请重命名其他onEdit函数。请注意这一点。 -
您使用的脚本是什么?您是否设法尝试在没有 onEdit 触发器的情况下运行它并手动执行它?此外,在脚本上,您只是排序而不是分隔单元格,您应该执行一个 for 循环来遍历日期,并且当日期与上一个日期不同时添加一个新行。
-
我正在使用上面的脚本并手动执行它会起作用我只是不知道我需要做什么来将单元格与新行分开并且我在从 onEdit 更改它时遇到问题到手动。我是一个完整的初学者
-
@tanaike 有什么方法可以在 OnOpen 上方制作脚本并合并我在第一条评论中链接的解决方案?
-
将脚本设为 onOpen 是什么意思?你的意思是使用简单的触发器onOpen(e)?
标签: google-apps-script google-sheets border conditional-formatting