如何从工作表中的另一个下拉列表中设置默认下拉列表值?

时间:2015-03-30 18:16:29

标签: drop-down-menu google-apps-script

这是我想要做的。我有一个列表,填充由数据验证创建的下拉列表。然后,我根据第一个下拉值查询数据以填充第二个列表。一切正常,除了我想将第二个下拉列表中的第一个值设置为默认值。换句话说,如果我更改第一个下拉列表中的值,我的第二个下拉列表现在会显示一个错误,直到我选择下拉列表并将值更改为正确的值。我想在第一个下拉列表更改时将其设置为第一个正确的值。我之所以这样做是因为我不希望别人忘记更改第二次下拉并获得一个甚至不在该范围内的值。

请帮助我对这种事情不熟悉。

感谢

https://docs.google.com/spreadsheets/d/1U2_0Ku1bCLfDh_v2XyE9aQMSfdYmlVfX_8SKmQay48g/edit?usp=sharing

这是我到目前为止所拥有的。它的工作原理除了编辑工作表时重置值。我只希望它在Cell A2更改时重置。

function onEdit() {
    var ss = SpreadsheetApp.getActive()
    var sheet = SpreadsheetApp.getActiveSheet();
    // IF(cellContent has changed) then clear B2
    // else do nothing.
    sheet.getRange('B2').clearContent();
    var value = sheet.getRange('H2').getValue();
    sheet.getRange('B2').setValue(value);
}

1 个答案:

答案 0 :(得分:2)

我想通了,这似乎工作得很好。

  function onEdit() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.getActiveCell();
  var cellR = cell.getRow();
  var cellC = cell.getColumn();
  var cellValue = cell.getValue();
  var active_spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var value = active_spreadsheet.getRange('H2').getValue();
  if (cellR == 2 && cellC == 1) {
    sheet.getRange('B2').clearContent();
    sheet.getRange('B2').setValue(value);
  }
}