我正在嘗試撰寫一個腳本,它允許我根據特定的單元格值將一行復制到一個新選項卡中。在這種情況下,它是設定為 TRUE 的復選框。
根據單元格值將行復制到新作業表沒有問題,但現在我不確定如何使用insertCheckboxes將 5 個復選框附加到新作業表中的復制行。
這是我目前的代碼:
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Client Database" && r.getColumn() == 9 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Referrals");
var target = targetSheet.getRange(targetSheet.getLastRow() 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
}
}
第 9 列包含復選框,當設定為 true 時,會將“客戶端資料庫”中的行復制到我的新選項卡(“推薦人”)中。
我正在為兩件事撓頭:
- 我需要更改代碼以僅從原始作業表中復制第 1 列和第 4 列?(因為它當前正在復制行中的所有列)。
- 除非有更簡單的解決方法,否則如何使用 將復選框附加到新作業表中的相鄰列中
insertCheckboxes?(下圖)。這只是為了避免每次都必須手動插入盒子(因為我不會是使用表格的人)
任何意見是極大的贊賞。

uj5u.com熱心網友回復:
復選框
添加到您的腳本
var checkbox = SpreadsheetApp.newDataValidation().requireCheckbox().build();
targetSheet.getRange(targetRow,3,1,4).setDataValidation(checkbox).setValue("FALSE");
其中 targetRow 是行, targetSheet 是您復制的作業表
代碼
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if (s.getName() == "Client Database" && r.getColumn() == 9 && r.getValue() == true) {
var row = r.getRow();
var targetSheet = ss.getSheetByName("Referrals");
targetSheet.insertRowBefore(2)
var targetRow = 2
targetSheet.getRange(targetRow,1).setValue(s.getRange(row,1).getValue())
targetSheet.getRange(targetRow,2).setValue(s.getRange(row,4).getValue())
var checkbox = SpreadsheetApp.newDataValidation().requireCheckbox().build();
targetSheet.getRange(targetRow,3,1,4).setDataValidation(checkbox).setValue("FALSE");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419474.html
標籤:
上一篇:WordCount程式
