复制和粘贴下拉列表会清除单元格

Copying & pasting drop down lists clears cells

所以我对脚本还很陌生,我有一些有效的动态依赖下拉列表。当我清除 A 列中的单元格时,它会直接清除它右侧的单元格,这很棒。

但是,当我复制并粘贴一行时,它会清除 A 列右侧的单元格。我的问题是:有没有办法使一行“可复制和粘贴” , 所以粘贴时不清除B列?

以下是我所描述内容的一些图片: [1]: https://i.stack.imgur.com/F0xOg.png [2]: https://i.stack.imgur.com/geHuu.png

最后,这是我正在使用的脚本:

function onEdit(){
    var tabLists = "Exercise Index";
    var spreadsheet = SpreadsheetApp;
    var activeSheet = spreadsheet.getActiveSpreadsheet().getActiveSheet();
    var data = spreadsheet.getActiveSpreadsheet().getSheetByName(tabLists);
    
    var activeCell = activeSheet.getActiveCell();
    
    if(activeCell.getColumn() == 1 && activeCell.getRow() > 3 && activeSheet.getSheetName().includes("Week")){
      
      activeCell.offset(0, 1).clearContent().clearDataValidations();
      
      var makes = data.getRange(1, 1, 1, data.getLastColumn()).getValues();
      
      var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
      
      if(makeIndex != 0){
      
          var validationRange = data.getRange(2, makeIndex, data.getLastRow());
          var validationRule = spreadsheet.newDataValidation().requireValueInRange(validationRange).build();
          activeCell.offset(0, 1).setDataValidation(validationRule);
    
      }  
        
    }
    
  }

googlesheet的副本:https://docs.google.com/spreadsheets/d/1OrDTJiAlVJRU5tKCA55CoVgnT83_k8n_yz9BkWYpZ_0/edit?usp=sharing

提前致谢!

从您的回复来看,我认为您当前问题的原因是activeCell.offset(0, 1).clearContent().clearDataValidations()。当您的脚本为 运行 时,活动单元格的右侧单元格将被清除。那么,在你的脚本中,下面的修改怎么样?

发件人:

activeCell.offset(0, 1).clearContent().clearDataValidations();

收件人:

activeCell.offset(0, 1).clearDataValidations();

或者,删除 activeCell.offset(0, 1).clearContent().clearDataValidations();