Google apps script 我有两个脚本可以很好地工作,但是当我把它们结合起来时,它就不起作用了

Google apps script 我有两个脚本可以很好地工作,但是当我把它们结合起来时,它就不起作用了,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想合并两个简单的脚本,但合并后就行不通了。谁能告诉我为什么 我不明白这里发生了什么,有人能给我解释一下吗,或者有人能告诉我如何组合两个脚本吗 function Script1() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate(); spreadsheet.g

我想合并两个简单的脚本,但合并后就行不通了。谁能告诉我为什么

我不明白这里发生了什么,有人能给我解释一下吗,或者有人能告诉我如何组合两个脚本吗

function Script1() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
  spreadsheet.getCurrentCell().offset(0, 7).activate();
  spreadsheet.getCurrentCell().setFormulaR1C1('=edate(R[0]C[-3],1)');
  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().setFormulaR1C1('=now()');
};



function Script2() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().offset(0, -2).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().offset(0, -2).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};



function Combined() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
  spreadsheet.getCurrentCell().offset(0, 7).activate();
  spreadsheet.getCurrentCell().setFormulaR1C1('=edate(R[0]C[-3],1)');
  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().setFormulaR1C1('=now()');


  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().offset(0, -2).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().offset(0, -2).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};  

脚本获取当前单元格,然后使用activate更改当前单元格,因此第二部分的起点与第一部分的起点不同。

谢谢ruben。我只是想确定你会怎么写这个脚本?顺便说一句,你会注意到我重复了电子表格.getCurrentCell.getNextDataCellSpreadsheetApp.Direction.PREVIOUS.activate;这是为了选择行的第一列。有剧本吗?非常感谢你。much@zyburg在我的脚本中,我没有使用getNextDataCell,我很少使用offset和activate。相反,我经常使用getRange和getDataRange的不同变体