![](/img/trans.png)
[英]How to inset automatic data in Cells using app script in google sheet?
[英]Automatic ticking checkbox in google sheet using google app script
我有一個問題如下。 首先:分別在 A 列的假期中,我為訂單列表表着色。
第二:在假期的F行(在A列),復選框中沒有勾選我試過但沒有成功這是我的代碼
function checkbox() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
if (sheet.getRange('C2').getValue() =='6/2/2021'||sheet.getRange('C2').getValue()
=='7/2/2021') {
sheet.getRange('C9').setValue('FALSE');
} else {
sheet.getRange('C9').setValue('FALSE');
}
}
如果日期是假期,您可以使用onEdit(e)簡單觸發器取消選中該復選框。
檢查您的共享文檔后,您的 Google 表格時區設置為 Tokyo(+09:00) 但您的腳本時區設置為America/Los_Angeles
。
要更新您的腳本時區:
Project Settings setting
Show "appsscript.json" manifest file in editor
復選框。appsscript.json
文件中的 timeZone 屬性更改為"timeZone": "Asia/Tokyo"
function onEdit(e){
var ss = e.source
var sheetName = '注文記入表';
var sheet = ss.getActiveSheet();
var cell = e.range;
Logger.log(cell.isChecked());
//Check if modified cell is a checkbox and if it in sheet 注文記入表
if(sheet.getName()==sheetName && cell.isChecked() != null){
//Get Holidays
var holidays = sheet.getRange('A1:A').getDisplayValues().flat().filter(String);
//Get date value
var dateVal = sheet.getRange(4,cell.getColumn()).getValue();
Logger.log(dateVal);
var dateStr = Utilities.formatDate(new Date(dateVal),Session.getScriptTimeZone(),"dd/MM/yyyy");
Logger.log(dateStr);
//If current date is a holiday, uncheck the checkbox
Logger.log(holidays.includes(dateStr));
if(holidays.includes(dateStr)){
cell.uncheck();
}
}
}
e.source
和e.range
獲取電子表格object 和范圍object。range.isChecked()
返回范圍內的所有單元格是否將其復選框 state 設置為“已選中”。 如果選中了某些單元格並且未選中 rest,或者如果某些單元格沒有復選框數據驗證,則返回 null。
如果修改后的單元格是一個復選框,則在 A 列中獲取假期列表。 range.getDisplayValues()返回一個二維字符串值數組,使用Array.prototype.flat()將其更改為一維字符串數組價值觀。 然后使用Array.prototype.filter()刪除空單元格值。
使用range.getValue()獲取復選框的日期。 由於您的假期日期列表采用DD/MM/YYYY
格式,因此請使用Utilities.formatDate(date, timeZone, format)以這種格式轉換日期值
使用Array.prototype.includes()檢查步驟 4 中的轉換日期是否列在您的假期數組列表中。 如果在假期數組列表中找到它,請使用range.uncheck()取消選中該復選框
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.