2015-03-30 52 views
1

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

请帮助我是这种新东西。

感谢

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

这是我到目前为止所。它在任何时候编辑表格时都有效,值被重置。我只希望它在单元格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); 
} 
+0

您是否试图在应用程序脚本中实现此目的。如果是,请发布一些你已经尝试过的代码。 – KRR 2015-03-30 19:50:28

+0

我想尽可能地完成这个任务,我不知道它是如何完成的。任何指针都会有所帮助。 – 2015-03-30 20:58:47

回答

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); 
    } 
} 
+0

非常感谢您解决这个问题和解决方案。 – urwaCFC 2018-03-05 12:19:50

相关问题