当该行发生更改时,使用当前日期更新该行中的单元格

弗雷德里克·尼曼

我找到了两个脚本。由于它们都是 onEdit() 函数,因此无法并行工作,因此我尝试将它们合并。

我正在使用这张表来列出我所售商品的基本清单/跟踪我所售商品。

我想要两件事;
第一:每当我对该行进行更改时,我都希望 A 列中的单元格更改为当前日期。
第二:如果我将 B 列中的值更改为“已售出”,我希望将其移动到不同的工作表(以及由于更改而获得新日期)。

B 列有以下选项:
-Ja(库存)
-Bokad(预订时)
-Såld(售出时)

床单的名称是:-Blocket(库存)-Sålda(已售出)

function onEdit(event) {
// assumes source data in sheet named Blocket
// target sheet of move to named Sålda
// test column with "Såld" is col 2

var s = event.source.getActiveSheet(),
cols = [2], 
colStamp = 1,
ind = cols.indexOf(event.range.columnStart)
if (s.getName() == 'Blocket' || ind == -1) return;
event.range.offset(0, parseInt(colStamp - cols[ind]))
.setValue(e.value ? new Date() : null);


var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();

if(s.getName() == "Blocket" && r.getColumn() == 2 && r.getValue() == "Såld") 
{
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Sålda");
if(targetSheet.getLastRow() == targetSheet.getMaxRows()) {

targetSheet.insertRowsAfter(targetSheet.getLastRow(), 20); //inserts 20 rows 
after last used row
}
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row); 
}
} 
JPV

看看这是否有效

function onEdit(e) {
var s, targetSheet;
s = e.source.getActiveSheet();

if (s.getName() !== 'Blocket' || e.range.columnStart == 1) return;
s.getRange(e.range.rowStart, 1)
    .setValue(new Date());

if (e.range.columnStart == 2 && e.value == "Såld") {
    targetSheet = e.source.getSheetByName("Sålda");

    if (targetSheet.getLastRow() == targetSheet.getMaxRows()) {
        targetSheet.insertRowsAfter(targetSheet.getLastRow(), 20); //inserts 20 rows 
    }
    s.getRange(e.range.rowStart, 1, 1, s.getLastColumn()).moveTo(targetSheet.getRange(targetSheet.getLastRow() + 1, 1));
}
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何基于该行的单元格中列出的日期是否已经过清除该行的内容

如果在Excel中更改了该行的任何单元格,如何在该行中添加标识符?

更改另一个单元格时,在单元格中输入当前日期

根据当前日期在单元格中输入

编辑单元格时,它还会更新该行中的另一个单元格

根据该行单元格中的文本删除整行

根据更改的 GridView 单元格值将数据库表列更新为当前日期

同一行中相关单元格更改时的更新日期

如果特定单元格的值发生变化,则仅清除该行中单元格值发生变化的行中的内容

如何在Google表格的单元格中显示默认的当前日期,在该单元格中使用数据验证来选择日期?

跳转到当前日期单元格(日期在一行中) Google 表格

使用单个快捷方式将当前日期和时间(DATETIME函数)插入LibreOffice Calc中的单元格

根据单元格值vba显示当前日期

NSCollectionView单元格顺序在视图更改时发生更改

打开电子表格时,使用当前日期填充单元格VBA

Excel VBA - 在单元格发生更改时记录

如果该行中列的A单元格与B的标题相同,则为B列中的单元格着色

如何检查表中是否存在值并返回该行中单元格的值

突出显示单元格或行,如果该行中的某个单元格已被条件格式化

使一个表格单元格填充该行

从该行的另一列获取单元格信息

如果该行或列包含0,则将矩阵中的每个单元格设置为0

检查QTableWiget的特定列中的空单元格并删除该行

如何根据该行中某个单元格的值复制行值?

如果该行中的所有单元格为空,则条件格式化整行

复制并粘贴该行N次(N取决于单元格中的值)

当该行的数据更改时,如何更新列表中的一行?

在单元格更改时从选定范围返回随机日期

如果范围中的单元格更新,则使用日期更新 Excel 单元格