我有一個專案路線圖跟蹤器,其中每一列對應于一周的第一個日期。如果該日期與本周的任何日期匹配,我會自動突出顯示該列,但這些列太窄以至于不容易辨認。我想擴展包含打開作業表時與當前周匹配的日期的列。
我不熟悉 Google Apps 腳本,也不知道如何解決這個問題。另外,由于我幾乎不知道這些函式彼此之間的作用,因此將其他示例腳本蹣跚而行已被證明是徒勞的。
為了突出顯示當前日期/周的列,我使用了這個條件格式公式,我最好將它集成到腳本中。
=AND(WEEKNUM(TODAY(),2)=WEEKNUM($2:$2,2),YEAR(TODAY())=YEAR($2:$2))
公式在第 2 行中查找每一列的日期,并檢查日期是否與本周內的任何日期匹配。
簡而言之,我試圖撰寫一個腳本:
- 打開時
- 該腳本查找與當前一周記憶體在的日期匹配的列
- 自動將列調整為特定寬度(如 200)
- 自動以特定顏色突出顯示該列(如淡紅色)
uj5u.com熱心網友回復:
基本上它可能是這樣的:
function main() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// get the dates from the first row of the sheet
var dates = sheet.getRange(1,1,1,sheet.getLastColumn()).getValues().flat();
// get current week and year
var today = new Date();
var current_week = Utilities.formatDate(today, ss.getSpreadsheetTimeZone(), 'w');
var current_year = today.getFullYear();
// get indexes of the columns with dates belong current week and year
var columns = [];
for (let i in dates) {
var date = new Date(dates[i]);
var date_week = Utilities.formatDate(date, ss.getSpreadsheetTimeZone(), 'w');
var date_year = date.getFullYear();
if (date_year == current_year && date_week == current_week) columns.push( i 1);
}
// change width of the columns to 200
columns.forEach(col => sheet.setColumnWidth(col, 200));
// change backgrounds of the columns to pale red
var last_row = sheet.getLastRow()
columns.forEach(col => sheet.getRange(1,col,last_row,1).setBackground('#ffaaaa'));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428183.html
