将已编辑单元格中的值复制到新单元格

Copy values from edited cell to a new one

我一直在尝试弄清楚如何使用 App Script 将值从一个单元格复制到另一个单元格。我自己不是一个程序员,但我仍然愿意学习。

这是我需要实现的示例:

Sheet 1 包含带有销售价格的产品菜单

Product Price
Salad

等等...

Sheet 2

我在这个 sheet 中提出了一个卖点,您可以在其中登记销售和采购。如果是促销...当您选择产品时,它会为您提供菜单上的价格标签并将其乘以销售数量 示例:

S or P Product Price Quantity Total
Sale Salad 2

问题是我需要更改菜单上的价格标签,但我不想通过此更改修改过去的数据条目 (Col 'Total'),所以我认为最好以某种方式进行我可以设法将 'Total' 上出现的第一个值复制到新列

有什么想法吗?

到目前为止,我一直在尝试修改此脚本并尝试使其适用于复制粘贴,但我不知道我在做什么:)


function onEdit(e){
  //variables
  var startRow = 2;
  var targetColumn = 5;
  var ws = "Sheet 1";
  
  //get modified row and column
  var row = e.range.getRow();
  var col = e.range.getColumn();
  
  if(col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws){
    
//Lost at this point...

  }
}

希望有人能帮助我 :)

如果我理解正确,你想要的是每当你编辑商品的价格时,'Total' 中的值将被复制并粘贴到另一列,'Total' 现在将具有价格*数量作为其新价值。我说得对吗?

如果是这样,你可以尝试下面的代码,我根据你在post中的代码。它会在您编辑 'Price' 的值时触发,并将 'Total' 的先前值移动到另一列 'Previous Total' 并将根据价格输入自动更新 'Total' 和'Quantity'.

中的值
function onEdit(e){
  //variables
  var startRow = 2;
  var targetColumn = 3;
  var ws = "Sheet1";
  
  //get modified row and column
  var row = e.range.getRow();
  var col = e.range.getColumn();
  
  if(col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws){
//Lost at this point...
    price = e.range.getValue();
    quantity = e.range.offset(0,1).getValue();
    prevTotal = e.range.offset(0,2).getValue();
    e.range.offset(0,2).setValue(price*quantity);
    e.range.offset(0,3).setValue(prevTotal);
  }
}

上一个样本值:

编辑示例值后: