2013-10-05 81 views
1

在這裏得到了兩個腳本,它們基於直通方式更改字體顏色,兩者都在工作。 - 第一個可以自定義觸發, - 第二個是onEdit。是否有可能讓onEdit觸發器用於fontstylechanges? (line-through)

onEdit具有我的偏好,因爲它可以立即自動執行,但是onEdit在單元格的值越過yes或no時看不到更改。

那麼是否有可能讓onEdit觸發fontstylechanges?

function colorlinethrough() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet 
    var sheet = ss.getSheets()[0]; // Get first Sheet 
    var range = sheet.getDataRange(); // Get cells 
    var data = range.getValues(); // Get the cell values 

    for (var i in data) { 
    var editrange = sheet.getRange(parseInt(i)+1,2); 
     if (editrange.getFontLine() == "line-through") { 
      editrange.setFontColor("#CCCCCC"); 
     } 
     else { 
      editrange.setFontColor("#000000"); 
     } 
    } 
}; 

function onEdit(e) { 
    var ss = e.source; // Get spreadsheet 
    var range = ss.getActiveRange(); 
    if (range.getFontLine() == "line-through") { 
     range.setFontColor("#CCCCCC"); 
    } 
    else { 
     range.setFontColor("#000000"); 
    } 
}; 

也提上了G +社區https://plus.google.com/104787958270362345970/posts/GTdBoTZR3YF

回答

4

電子表格有一個onChange事件可能在這裏做的伎倆這個問題。 onEdit是數據更改時的情況,onChange是電子表格UI本身更改時的情況。試一試。

https://developers.google.com/apps-script/understanding_events

+0

肯定會做!感謝您的建議,今晚將嘗試並報告回來! – dimitrieh

+0

好的,onChange確實能完成這項工作!但它只適用於colorlinethrough()函數,而不適用於onEdit(e)函數(我通過名稱更改)。我認爲onEdit(e)函數會更有效率,如果onChange可以使用它,因爲它只查看已更改的單元格範圍。是因爲更改時不提供範圍對象? – dimitrieh

+0

順便說一句,知道有一個GUI編輯和創建觸發器,不知道,所以我最初搞亂更改函數名稱XD! – dimitrieh

相關問題