我正在嘗試撰寫一個腳本來跟蹤谷歌表格中的付款日期(付款前三天顯示不同的顏色(FontColor 或背景),付款當天的另一種顏色和付款日期后完全不同的顏色。我如果有人知道如何使用這些值來獲取單元格名稱并使用它來更改 FontColor 或者如果有更好的解決方案,我將不勝感激這是我的谷歌表
這是我為將日期放入串列而撰寫的代碼
function paymentTracker() {
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let lastRow = spreadsheet.getLastRow();
let lastCol = spreadsheet.getLastColumn();
var dataRange = spreadsheet.getActiveSheet().getRange(2, 11, lastRow, lastCol)
dataRange.setFontColor("green")
var data = dataRange.getDisplayValues();
let dates=[];
for (let i=0; i < dates.length; i ) {
// console.log(dates[i])
if (dates[i] === new Date().toLocaleDateString()) {
dataRange.setBackground('pink')
} else if (dates[i]) {
// do sth
} else {
// maintain the current state
}
}
}
uj5u.com熱心網友回復:
付款追蹤器
function paymentTracker() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const rg = sh.getRange(2, 11, sh.getLastRow() - 1, sh.getLastColumn() - 10);
rg.setFontColor("black")
const vs = rg.getDisplayValues();
const d = new Date();
//Logger.log('y: %s,m: %s,d: %s', d.getFullYear(), d.getMonth(), d.getDate());
const dt = new Date(d.getFullYear(), d.getMonth(), d.getDate());
const dtv = dt.valueOf();
const dt3 = new Date(d.getFullYear(), d.getMonth(), d.getDate() 3);
const dt3v = dt3.valueOf();
vs.forEach((r, i) => {
let ds = r.map(ds => {
let t = ds.split('/');
//Logger.log(JSON.stringify(t))
let v = new Date(Number(t[2]), Number(t[1]) - 1, Number(t[0])).valueOf();
let diff3 = dt3v - v;
if (dt3v == v) {
return "purple";
} else if (dtv == v) {
return "green";
} else {
return "pink";
}
});
sh.getRange(i 2, 11, 1, ds.length).setBackgrounds([ds]);
})
}
uj5u.com熱心網友回復:
它需要與腳本嗎?使用條件格式會更快、更容易并不斷上傳。

您可以將其應用于整個作業表或特定范圍。使用此自定義公式(將 A1 更改為范圍的左上角公式)=if(A1="",FALSE,(A1 - Today()) < 0)

確保以正確的順序設定這些條件(在這種情況下,最好是過去日期、實際日期和接近的未來日期)。像這樣:
在這里你有一個鏈接可以玩:
https ://docs.google.com/spreadsheets/d/1zhEFRQwOyAYQwXfv5lYTjI7B-6fIfz1rgdCt3MGvzmI/edit?usp=sharing
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/532271.html
