【问题标题】:Get Cell Drop Box - not just values获取 Cell Drop Box - 不仅仅是值
【发布时间】:2022-10-14 22:34:44
【问题描述】:

我正在 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 获取整个下拉框并将其复制到添加的每个新行中的第一个单元格?以编程方式在每个新行的第一个单元格中创建一个简单的下拉框也很好,但我也没有找到这样做的方法。任何帮助是极大的赞赏。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    我想你的意思是data validation 是一个投递箱?如果是这样,请插入类似以下代码的内容,该代码获取DataValidation 而不是value

     var row = sh.getActiveRange().getRow();
     var range = sh.getRange(1,1); 
     var dropbox = range.getDataValidation();
     sh.getRange(row, 1).setDataValidation(dropbox);
    

    为了说明,在this example sheet 中,如果您运行下面的myFunction(),它将获得数据验证(即投递箱) 在单元格A1 中并将其设置为单元格A2:A10

    /** @OnlyCurrentDoc*/
    
    function myFunction() {
      const ss = SpreadsheetApp.getActiveSheet();
      var pullValidation = ss.getRange("A1").getDataValidation();
      ss.getRange("A2:A10").setDataValidation(pullValidation);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      相关资源
      最近更新 更多