2017-07-11 39 views
1

我剛開始嘗試寫一些腳本,所以認爲我會從容易開始。不幸的是,該表已超時,並且我收到了以下錯誤消息:Gsheet由於腳本超時

「Aw,Snap!」:Chrome在加載您嘗試查看的網頁時遇到問題。

我想所有單元對準到左側,改變所有字體宋體並設置所有字體大小至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'); 
} 

我相當肯定它的單元格區域/數這導致了這個問題,但我需要腳本來影響所有表單中的每個單元格。

有沒有人有更好的方法來做到這一點?

感謝

回答

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 ..我會建議創建onEdit只是一個活動單元更換,所以每當有人寫的東西進入細胞時,它會自動變爲根據您的需要:)

例如

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

非常感謝你的幫助,你回答我的問題,然後改進的想法,所以滿分!沒有想到讓單個單元格改變而不是整個表格,但更有意義。再次感謝。 – Robioty