在跟客戶或同事共用線上試算表,或許多少遇過條件式格式被動到,導致要重新調整的麻煩事吧?
以下語法可以透過"擴充功能>Apps Script"加上,並且透過裡面的觸發器,達到條件式格式不會跑掉的結果。

要注意的是,觸發器盡量不要是隨時觸發,以免佔用過多的資源!

以下範例是以晚於當天日期就會變色,並且文字要左右+垂直置中的方式去撰寫,可以專案的需求去做變更。

function restoreConditionalFormatting() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("替換為你的工作表名稱"); // 替換為你的工作表名稱
  var range = sheet.getRange("B2:C999"); // 替換為你要保護的範圍

  // 清除現有條件式格式
  range.clearFormat();

  // 添加條件式格式
  var today = new Date();
  var rule = SpreadsheetApp.newConditionalFormatRule()
    .whenDateAfter(today)
    .setBackground("#b7e1cd") // 設置背景色為淡綠色
    .setRanges([range])
    .build();

  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);

  // 將文字水平對齊方式設置為置中
  range.setHorizontalAlignment("center");
  range.setVerticalAlignment("middle");
}

function onEdit(e) {
  restoreConditionalFormatting();
}

arrow
arrow
    創作者介紹

    韋恩食記 發表在 痞客邦 留言(0) 人氣()