javascript 缓存/记住不固定的单元格值并将其插入到另一个单元格中

dfuffjeb  于 2023-02-18  发布在  Java
关注(0)|答案(2)|浏览(136)

我有一个脚本,在这个脚本中,我转到最后一个单元格(它总是在不同的行),并希望从下一个右单元格传输单元格值。
然后向右移动六个单元格,插入复制的值。
//复制值和//粘贴复制的值是我的问题,因为我没有固定的单元格。
图像:橙色单元格的橙色值

// Jump to the End
spreadsheet.getRange('G10').activate();
spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();

// go one step to the right
spreadsheet.getCurrentCell().offset(0, 1).activate();

// COPY VALUE
???

// go six steps to the right and PASTE THE COPIED VALUE
spreadsheet.getCurrentCell().offset(0, 6).activate();
spreadsheet.getRange('???').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

谢谢大家!

    • 编辑:**
vhmi4jdf

vhmi4jdf1#

试试这个

function myFunction() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet = ss.getActiveSheet(); 
  var lastrow = sheet.getLastRow(); 
  var getval = sheet.getRange(lastrow,2).getValue();
  sheet.getRange(lastrow, 2).offset(0,6).setValue(getval);

}

它的作用是转到工作表的最后一行,获取最后一行Col2的值,向右偏移6个单元格,然后将值复制到给定的偏移量。

72qzrwbm

72qzrwbm2#

The value comes from the last Cell in column G +1 to the right from column H. That's why I use SpreadsheetApp.Direction.DOWN. I want to copy the value from the single Cell in column H to column N, but in the same row. The columns are always the same, but the rows change with every Entry.,我理解您的预期结果如下。

  • 您希望将最后一行的“H”列的值复制到“N”列。

在这种情况下,下面的修改怎么样?

示例脚本:

最后一行可以用Class Sheet的getLastRow()来检索。为了复制值,可以使用Class Rabge的copyTo

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet(); // or  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
  var srcRange = sheet.getRange("H" + sheet.getLastRow());
  srcRange.copyTo(srcRange.offset(0, 6), { contentsOnly: true });
}
  • 在这种情况下,最后一行“H”列的值被复制到“N”列。
  • 作为另一种方法,当您希望使用getValuesetValue时,也可以使用以下示例脚本。
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet(); // or  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
  var srcRange = sheet.getRange("H" + sheet.getLastRow());
  srcRange.offset(0, 6).setValue(srcRange.getValue());
}

参考文献:

  • 获取上一行()
  • copyTo(目标,选项)

相关问题