首页 > 解决方案 > 如何将值复制到活动单元格的左侧?

问题描述

我正在编写一个在活动单元格中输入日期的脚本。我只在 B 列中使用脚本。现在我想将一个值从D2(其中D2是数字)复制到活动单元格左侧的单元格中。然后是D2+ 1 的值。

  function TimeStamp(){

  var ss=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var Time=new Date();

  var timeStampFormat="dd.mm.yy";

  ss.getActiveCell().setValue(Time).setNumberFormat(timeStempelFormat);

}

现在我的问题是如何将D2剩下的一个单元格的值复制到我的活动单元格(timeStamp),然后复制D2+ 1 的值。

标签: google-apps-scriptgoogle-sheets

解决方案


function timestampandoffset() {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var Time = new Date();
    var timeStampFormat = "dd.mm.yy";
    ss.getActiveCell().setValue(Time).setNumberFormat(timeStampFormat);
    ss.getActiveCell().offset(0, -1).setValue((ss.getActiveCell().offset(0, 2).getValue()) + 1);
}

您只需多写一行代码即可实现您的目标。

ss.getActiveCell().offset(0, -1).setValue((ss.getActiveCell().offset(0, 2).getValue()) + 1);

关键是利用您的起始位置(在您的情况下,它是 ActiveCell)。所有偏移量引用都与此相关- 上方或下方有多少行,和/或左侧或右侧有多少列。

代码包含三个组件:
1)ss.getActiveCell().offset(0, 2).getValue()
这是 D 列的值。偏移量(记录在offset(rowOffset, columnOffset) 处)为“0,2”:即:与 ActiveCell 相同的行,但 2 列右侧(= D 列)。

2)(ss.getActiveCell().offset(0, 2).getValue()) + 1
这将获取偏移单元格/范围(D 列)中的值并加一。

3)ss.getActiveCell().offset(0, -1).setValue
最后,这是目标单元格。偏移量为“0,-1”:即与 ActiveCell 相同的行但左侧一列(=A 列)。


推荐阅读