将已编辑单元格中的值复制到新单元格
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);
}
}
上一个样本值:
编辑示例值后:
我一直在尝试弄清楚如何使用 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);
}
}
上一个样本值:
编辑示例值后: