我需要我的宏 "Save" 按钮在每次保存新数据时添加一个新行,而不是替换之前保存的当前行

I need my Macros "Save" button to add a new row every time new data is saved, not replace the current one that was saved before

我只需要我的宏来保存信息并向同一工作簿中的另一个 sheet 添加一个新行而不替换旧保存的数据,而是添加一个新行。

我是新手,需要高手帮忙,谢谢大家的帮助。

    enter code here

function CopyandPaste() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('J3:N3').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Work Log Data'), true);
  spreadsheet.getRange('A3:E3').activate();
  spreadsheet.getRange('\'Customer Interface\'!J3:N3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};

我需要将从范围 J3:N3 中复制的所有数据复制到 Sheet "Customer interface" 中,而不替换之前复制的信息,方法是每次添加一个新行 "save" 按钮被点击。谢谢!!

我想这就是你想要的。但很难说。宏可能很容易制作,但它们制作的脚本记录不完整。

function CopyandPaste() {
  var ss = SpreadsheetApp.getActive();
  ss.getRange('J3:N3').activate();
  ss.setActiveSheet(ss.getSheetByName('Work Log Data'), true);
  ss.getRange('A3:E3').activate();
  ss.getRange('\'Customer Interface\'!J3:N3').copyTo(ss.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  var sh=ss.getSheetByName('Customer Interface');
  var rg=sh.getRange('J3:N3');
  var values=rg.getValues();
  sh.appendRow(values[0]);
}

OP 编辑​​的版本:

function CopyandPaste() { 
  var ss = SpreadsheetApp.getActive(); 
  ss.getRange('J3:N3').activate(); 
  ss.setActiveSheet(ss.getSheetByName('Work Log Data'), true); 
  ss.getRange('A3:E3').activate(); 
  ss.getRange('\'Customer Interface\'!J3:N3').copyTo(ss.getActiveRange(), 
  SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); 
  var sh=ss.getSheetByName('Work Log Data'); 
  var rg=sh.getRange('A3:E3'); 
  var values=rg.getValues(); 
  sh.appendRow(values[0]); 
} 

在评论中回答你的问题:

function CopyandPaste() { 
  var ss = SpreadsheetApp.getActive(); 
  ss.getRange('J3:N3').activate(); 
  ss.setActiveSheet(ss.getSheetByName('Work Log Data'), true);
  ss.getRange('A3:E3').activate(); 

  //this copies from 'Customer Interface'!J3:N3 to 'Work Log Data'!A3:E3
  ss.getRange('\'Customer Interface\'!J3:N3').copyTo(ss.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);


  var sh=ss.getSheetByName('Work Log Data'); 
  var rg=sh.getRange('A3:E3'); 
  var values=rg.getValues(); 
  //this append 'Work Log Data'!A3:E3 to the bottom of the 'Work Log Data'
  sh.appendRow(values[0]);
}