Google脚本 - 自动填充当前日期 - 在下拉列表中选择特定文字的时间

时间:2017-06-22 14:23:28

标签: google-sheets

我想知道是否有人可以帮助我使用以下谷歌脚本?我刚开始研究一些谷歌脚本,并帮助我的同事跟踪他的作品的制作。

以下是对该字段的解释。

Column 9 = Status (Dropdown list: Pending, In-progress, Done)
Column 11 = Send Date
Column 13 = Start Date
Column 14 = End Date

我希望脚本如何工作 例如:

  • 当第9列(下拉列表)值="待定"然后自动填充当前 第11栏的日期。
  • 当第9列(下拉列表)值="正在进行中"然后自动填充 第13栏的当前日期。
  • 当第9列(下拉列表)值="结束日期"然后自动填充当前 第14栏的日期。

当状态为"进行中时,我正在努力获取的代码"。 我知道这部分我错了。 - > [s.getValue()!=='正在进行中'] 但我不知道在哪里或如何将我正在寻找的某些文本放在这里。

function onEdit(e) {

var s = e.source.getActiveSheet(),
    cols = [9],
    colStamp = 13,
    ind = cols.indexOf(e.range.columnStart)
    if (s.getName() !== 'Lab Cases Tracker' || s.getValue() !== 'In-progress' || ind == -1) return;
e.range.offset(0, parseInt(colStamp - cols[ind]))
    .setValue(e.value ? new Date() : null);
}

非常感谢你!

1 个答案:

答案 0 :(得分:0)

这应该这样做:

function onEdit(e) {
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s1=ss.getActiveSheet()
  var s = e.source.getSheetName()
  var col=e.range.getColumn()
  var r=e.range.getRow()
  var val=e.value
  var curDate = Utilities.formatDate(new Date(), "GMT+1", "MM/dd/yyyy")
  if(s=="Lab Cases Tracker" && col==9){
    if(val=="Pending"){
      s1.getRange(r,11,1,1).setValue(curDate);
    }
  else if(val=="In-progress"){
      s1.getRange(r,13,1,1).setValue(curDate);
    }
  else if(val=="End Date"){
      s1.getRange(r,14,1,1).setValue(curDate);
    }
  else{return} 
 }}