我目前正在使用修改后的脚本,允许我从表#1复制整行,在表#2的顶部创建一个新行,将复制的行粘贴到该表,然后删除旧的从表#1开始。 许多用户经常在一天中完成这项工作。该函数是onEdit。
这是剧本:
function onEdit(e) {
var ss = e.source;
var activatedSheetName = ss.getActiveSheet().getName();
var activatedCell = ss.getActiveSelection();
var activatedCellRow = activatedCell.getRow();
var activatedCellColumn = activatedCell.getColumn();
var activatedCellValue = activatedCell.getValue();
var URGENCE = ss.getSheetByName("List"); // source sheet
var COMPLET = ss.getSheetByName("Comp"); // target sheet
// if the value in column K is "x", move the row to target sheet
if (activatedSheetName == URGENCE.getName() && activatedCellColumn == 11 && activatedCellValue == "x")
{
COMPLET.insertRows(2,1);// insert a new row at the second row of the target sheet
var rangeToMove = URGENCE.getRange(/*startRow*/ activatedCellRow, /*startColumn*/ 1, /*numRows*/ 1, /*numColumns*/ URGENCE.getMaxColumns());
rangeToMove.moveTo(COMPLET.getRange("A2"));
URGENCE.deleteRows(activatedCellRow,1); // delete row from source sheet
}
}
最近这已经让我的表格崩溃了。每当有人放置" x"在K列中,工作表将停止,大多数情况下,它将崩溃并且chrome将终止页面。
我可能错了,但我猜测的问题是表#1中的大多数行都有条件格式。复制行时,它还复制条件格式。这导致我的表#2有数百个重复的条件格式:这张表打开速度很慢。 IT也可能是因为这个文档与大约30个人共享,他们经常查看和编辑它:也许onEdit在这里不是正确的功能?
是否有一个简单的脚本可以添加到我的函数中,它会剥离粘贴行上的条件格式?我不需要在表单#2中使用条件格式,出于某种奇怪的原因,我无法在任何地方找到答案。
答案 0 :(得分:1)
找到此功能from here.
<强> clearFormats()强>
清除格式表,同时保留内容。格式化 指的是如何将数据格式化为允许的数据 “格式”菜单(例如:粗体,斜体,条件格式)而不是 细胞的宽度或高度。
示例代码:
function testKillFormatting (nameOfSheet) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(nameOfSheet);
sheet.clearFormats();
}