如何将值复制到活动单元格的左侧?

时间:2018-11-01 14:57:51

标签: google-apps-script google-sheets

我正在处理一个在活动单元格中输入日期的脚本。我仅在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。

1 个答案:

答案 0 :(得分:0)

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)。