由于脚本,Gsheet超时

时间:2017-07-11 19:33:42

标签: javascript google-sheets

我刚开始尝试编写一些脚本,所以我觉得我很容易开始。不幸的是,工作表已超时,我收到了此错误消息:

"噢,Snap!":Chrome在加载您尝试查看的网页时遇到问题。

我想将所有单元格对齐到左侧,将所有字体更改为Verdana并将所有字体大小设置为10.

这是一个仅供查看的测试表,只是随机数据来模拟真实工作表中的数据量。

https://docs.google.com/spreadsheets/d/12ph1uF8asyKODjoB6td752-TPndc9MndyVJUmz9HKeQ/edit?usp=sharing

以下是我正在使用/改编/编写的代码,抱歉,如果格式/布局错误:

function onEdit()   {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets()[0]; 
var cell = ss.getRange('A1:BZ5000');
  cell.setFontSize('10');
  cell.setFontFamily('Verdana');
  cell.setHorizontalAlignment('left');  
}

我非常确定导致问题的单元格的范围/数量,但我需要脚本来影响所有工作表上的每个单元格。

有没有人有更好的方法来做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

我建议删除范围中的数字,因为即使没有必要,也会强制电子表格创建此范围。 (例如,您的示例数据只有1000行,但是您的脚本强制创建4000个额外的行乘以巨大的列数量:D)

只需替换

var cell = ss.getRange('A1:BZ5000');

var cell = ss.getRange('A:BZ');

应该够了

所以你的代码是:

function onEdit()   {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets()[0]; 
var cell = ss.getRange('A:BZ');
  cell.setFontSize('10');
  cell.setFontFamily('Verdana');
  cell.setHorizontalAlignment('left');  
}

希望这有帮助!

<强> PS: 只是另一个注意事项,根据我的个人经验..我不会在编辑上创建如此大的事件..我建议创建onEdit只是一个活跃的Cell更换器,所以每当有人将内容写入单元格时,它将根据您自动更改需要:))

例如

function onEdit()   {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var editCell = ss.getActiveCell();
  editCell.setFontSize('10');
  editCell.setFontFamily('Verdana');
  editCell.setHorizontalAlignment('left');  
}