基于值和一次运行多个onedit将一系列列复制到另一个工作表

时间:2017-05-07 04:49:02

标签: google-apps-script google-sheets

我想出了这个部分,但不能为我的生活让其余的工作。我需要以下情况......

  1. 在“Main”选项卡上进行编辑时,我希望C,D,Q,R和O列中的所有数据自动将值复制到协调列中,如果更改为“Bubbles”选项卡则更新。

  2. 在“主要”标签上进行编辑时,我希望列D,I,P,Q和R中的所有数据自动将值复制到协调列中,如果更改为“标签”则更新标签

  3. 这是我部分想通的。当在第I列的“主”选项卡上进行编辑时,我需要列D,I,P,Q和R自动将值复制到协调列中,并根据列I中的选择更新为协调选项卡。 - 在“Main”选项卡的第I列中选择了“web”,我需要“F17:”(在“Main”选项卡的P列中)复制到“web”选项卡上的B列。其他列出的列也是如此。但如果“BSR / inv。”被选中我需要列出的列中的信息转到“BSR / inv”。标签

  4. 最后,当在A列的“Main”选项卡上进行编辑时,我需要D,P,Q和R列自动将值复制到协调列中,如果更改为“Fashion”选项卡则更新。

  5. Google表格链接 https://docs.google.com/spreadsheets/d/1lxLU8jPz5Ci-azDBbzFgu7Ee_wFsUcPPyybJmWU6oUk/edit?usp=sharing

    到目前为止,这是我的工作。

    function onEdit() {
     var sheetNameToWatch = "Main"; 
     var columnNumberToWatch = 8; 
     var valueToWatch = "web"; 
     var sheetNameToCopyTheRowTo = "web"; 
     var ss = SpreadsheetApp.getActiveSpreadsheet(); 
     var sheet = SpreadsheetApp.getActiveSheet(); 
     var range = sheet.getActiveCell(); 
     if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) { 
      var targetSheet = ss.getSheetByName(sheetNameToCopyTheRowTo); 
      var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
      sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange); 
     } 
    }
    

    非常感谢您提供帮助!!!

0 个答案:

没有答案