簡體   English   中英

根據復選框更改范圍值 - Google 表格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM