![](/img/trans.png)
[英]Send email to specific addresses based on cell value change in google sheets
[英]Make range change value based on checkbox - Google Sheets
我希望在A3上有一個復選框,當檢查時,在A6:A350范圍的每個單元格上都會制作“ 0”類型。 如果可能的話,它會在最后自動取消勾選,將值留在范圍內。 現在在該范圍內使用 if 條件會很容易,問題是我希望能夠在需要時手動更改值。 腳本可以做到這一點嗎?
我一直在尋找這個,但似乎只能找到相反的東西,而且沒有編碼背景就不容易扭轉它。
提前致謝
這只能通過腳本來完成。 您可以像這樣用零填充一個范圍:
function fillWithZeros() {
SpreadsheetApp.getActiveSheet().getRange('A6:A350').setValue(0);
}
要輕松運行, fillWithZeros
分配給按鈕。
如果您真的需要在勾選復選框時運行它,請使用checkboxButtons_腳本。
試試這個代碼:
function onEdit(e) {
var row;
var col;
var sheetName;
var sheet;
if(e.value == "TRUE"){
if((row = e.range.getRow()) == 3 && (col = e.range.getColumn()) == 1){
if((sheetName = e.range.getSheet().getSheetName()) == "TargetSheet"){
sheet = e.range.getSheet();
sheet.getRange(6,col,345,1).setValue(0);
}
}
}
}
TargetSheet 應替換為您將使用的工作表的名稱,這樣做是為了使該 function 不會更改其他工作表的值。
編輯:這里是重寫為使用事件 object而不是 API 調用的相同代碼。
function onEdit(e) {
let sheet;
if (e.value !== 'TRUE'
|| e.range.rowStart !== 3
|| e.range.columnStart !== 1
|| (sheet = e.range.getSheet()).getName() !== 'TargetSheet') {
return;
}
sheet.getRange(6, e.range.columnStart, 345, 1).setValue(0);
e.range.setValue(false);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.