我有一張作業表,其中跟蹤生產力行為,在“美好的一天”人們將單元格背景顏色更改為綠色,無需任何操作,如果這是糟糕的一天(未滿足某些 KPI),那么他們會將單元格顏色更改為紅色,如果當天的單元格顏色更改為紅色,他們必須采取補救措施來解決/調查問題。
我想通過腳本創建一條警告訊息,如果有人將單元格的背景顏色更改為紅色,則會出現警告/提醒訊息并說“請記住提出/檢查與此問題相關的操作”。
例如:
- 我的包含資料的單元格范圍是 RW6:TR36
- 如果此范圍內的任何單元格的背景顏色更改為 #ff0000,則會出現警告訊息
- 僅當最后一次更改將單元格背景顏色更改為 #ff0000 時才會顯示警告訊息,從而忽略之前幾天已著色為 #ff0000 的范圍內的任何單元格
謝謝你。
uj5u.com熱心網友回復:
如果用戶格式更改將背景顏色更改為紅色,則生成警報訊息:
function onMyChange(e) {
//e.source.toast('Entry');
const sh = e.source.getActiveSheet();
if (sh.getName() == 'Sheet0' && e.changeType == "FORMAT") {
const rg = e.source.getActiveCell();
if (rg.getBackground() == '#ff0000') {
//e.source.toast('bg is red')
SpreadsheetApp.getUi().alert('Type your alert message here.')
}
}
}
我必須使用可安裝的觸發器才能使其正常作業。
可安裝的觸發器:
function createOnMyChangeTrigger() {
if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == 'onMyChange').length == 0) {
ScriptApp.newTrigger('onMyChange').forSpreadsheet(SpreadsheetApp.getActive().getId()).onChange().create();
}
}
uj5u.com熱心網友回復:
這是@MiMi 的答案中經過修改的解決方案。由于根據您的描述,當背景顏色更改為 時,您正嘗試在特定單元格上添加警告訊息red。這不會顯示警告框,而是會在已修改的單元格中添加注釋,包括單元格更改時的時間戳。
示例代碼:
function onChange(e) {
Logger.log(JSON.stringify(e));
var sh = e.source.getActiveSheet();
var cell = e.source.getActiveCell();
if (sh.getName() == 'Sheet2' && e.changeType == "FORMAT" &&
cell.getRow() >= 6 && cell.getRow() <= 36 &&
cell.getColumn() >= 4 && cell.getColumn() <= 7) {
if (cell.getBackground() == '#ff0000') {
// Add note to the cell
var dateTimeStr = Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"yyyy-MM-dd' 'HH:mm:ss");
var note = "Please remember to raise/check for actions relating to this issue."
note = "\n\nNote Created: " dateTimeStr;
cell.setNote(note);
}
}
}
- 在此示例中,當范圍
D6:G36背景顏色更改為紅色時,將添加注釋。
它能做什么?
- 檢查修改后的單元格是否在作業表中
Sheet2,如果changeType是FORMAT - 檢查修改后的單元格是否在第 6-36 行內。檢查修改后的單元格是否在列 DG(索引 4-7)內。
In your case, you need to get the column index of RW and TR - 檢查修改后的單元格的背景色是否為紅色。創建時間戳字串并向該單元格添加注釋。
輸出:

筆記:
It is not possible to use data validation help text as a warning message, that is why I decided to use note instead.

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360356.html
