我正在 Google 表格中撰寫一個腳本,以便在添加新行時用下拉框預填充單元格。A1電子表格的單元格有一個基本的下拉框選擇器(資料驗證),其中有幾個選項。投遞箱沒有連接到任何東西,也不用于任何操作。我只想將該下拉框復制到我添加到作業表的每個新行的第一個單元格中。
到目前為止,我擁有的腳本將獲取下拉框的選定值A1并將該值插入到新行的第一個單元格中。我想要的是整個下拉框,其中包含要添加到每個新行的所有選項——而不僅僅是值。到目前為止,這是我的腳本
function myFunction(e) {
var sh = SpreadsheetApp.getActiveSheet();
if(e.changeType === 'INSERT_ROW') {
var row = sh.getActiveRange().getRow();
var range = sh.getRange(1,1);
var dropbox = range.getValue();
sh.getRange(row, 1).setValue(dropbox);
}
}
所以 GetValue() 不是我需要的。有沒有辦法從 A1 獲取整個下拉框并將其復制到添加的每個新行中的第一個單元格?以編程方式在每個新行的第一個單元格中創建一個簡單的下拉框也很好,但我也沒有找到這樣做的方法。任何幫助是極大的贊賞。
uj5u.com熱心網友回復:
我認為您的意思是將資料驗證作為投遞箱?如果是這樣,請插入類似以下代碼的內容,以獲取DataValidation而不是value:
var row = sh.getActiveRange().getRow();
var range = sh.getRange(1,1);
var dropbox = range.getDataValidation();
sh.getRange(row, 1).setDataValidation(dropbox);
為了說明這一點,在此示例作業表中,如果您運行下面的代碼myFunction(),它將獲得單元格中的資料驗證(即下拉框)A1并將其設定為單元格A2:A10。
/** @OnlyCurrentDoc*/
function myFunction() {
const ss = SpreadsheetApp.getActiveSheet();
var pullValidation = ss.getRange("A1").getDataValidation();
ss.getRange("A2:A10").setDataValidation(pullValidation);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/365203.html
