【问题标题】:Disable and Enable cells based on another cell in Google Spreadsheets禁用和启用基于 Google 电子表格中另一个单元格的单元格
【发布时间】:2017-08-11 02:02:34
【问题描述】:

我的电子表格的第一列在每个单元格中都有下拉列表,其中包含“是”和“否”选项。

如果选择“是”,我想启用同一行中的单元格,下一列带有另一个带有选项“红色”和“蓝色”的下拉列表。如果选择“否”,则下一个单元格应保持禁用状态。

到目前为止,我已经尝试在单元格 B3 中将自定义公式的数据验证菜单设置为 =if(B2="Yes", "red", "blue"),但它不起作用。

我该怎么做?

【问题讨论】:

  • 查看 Jason Jurotich 的 youtube 视频,这里有一个 link

标签: google-sheets google-spreadsheet-api


【解决方案1】:

您可以使用 onEdit 和这样的脚本来做到这一点:

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getActiveSheet()
  var col=e.range.getColumn()
  var ro=e.range.getRow()
  var nota=e.range.getA1Notation()
  if(col==1){
  var val=e.range.getValue()
  if(val=="No"){
    s.getRange(ro,2,1,1).setDataValidation(null)
   }
      else{
      s.getRange(ro,2,1,1).clearContent()      
      var cell = s.getRange(ro,2,1,1);
      var rule =  
SpreadsheetApp.newDataValidation().requireValueInList(['Red', 'Blue']).build();
 cell.setDataValidation(rule);
      }}}

这是一个分享示例。复制并尝试一下。

https://docs.google.com/spreadsheets/d/1wHA1Rz9U9dr4n8DntLvZWPe4izck7xgi3ygUpx-uNmo/edit?usp=sharing

【讨论】:

  • 我收到这个脚本的错误:TypeError: Cannot read property "range" from undefined。 (第 4 行,文件“代码”)
  • 听起来您需要在脚本编辑器中批准该脚本。如果未通过,则事件 (e) 为空白,脚本将失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多