Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 生成时间戳后,在时间戳旁边插入文本_Google Apps Script_Google Sheets_Timestamp - Fatal编程技术网

Google apps script 生成时间戳后,在时间戳旁边插入文本

Google apps script 生成时间戳后,在时间戳旁边插入文本,google-apps-script,google-sheets,timestamp,Google Apps Script,Google Sheets,Timestamp,我的想法是,当您在B列中输入一个值时,它将生成一个时间戳。 时间戳的格式为“HHmm'H”。 示例:2310H 问题是在生成时间戳时,没有添加后缀“H” 我的 我已经在中阅读了google应用程序脚本文档。 我仍然无法让它工作 我的代码: function onEdit(e) { var rg=e.range; var sh=e.range.getSheet(); var name=sh.getName(); var s = e.source.getActiveSheet(),

我的想法是,当您在B列中输入一个值时,它将生成一个时间戳。 时间戳的格式为“HHmm'H”。 示例:2310H

问题是在生成时间戳时,没有添加后缀“H”

我的

我已经在中阅读了google应用程序脚本文档。 我仍然无法让它工作

我的代码:

function onEdit(e) {
  var rg=e.range;
  var sh=e.range.getSheet();
  var name=sh.getName();
  var s = e.source.getActiveSheet(),
      watchCols = [2],
      offsetCol = [-1],
      ind = watchCols.indexOf(e.range.columnStart)
  if (s.getName() !== "work" || ind === -1) return;
  e.range.offset(0, offsetCol[ind])
  .setValue(new Date());
    var vA=rg.getValues();
    for(var i=0;i<vA.length;i++){
      if(vA[i][0]) {
        sh.getRange(rg.rowStart + i,1).setValue(new Date()).setNumberFormat("HHmm").appendText("H"); //TIMESTAMP is created, but "H" is not inserted.
      }else{
        sh.getRange(rg.rowStart + i,1).clear();
      }
    }
  }
函数onEdit(e){
var rg=e.范围;
var sh=e.range.getSheet();
var name=sh.getName();
var s=e.source.getActiveSheet(),
watchCols=[2],
offsetCol=[-1],
ind=watchCols.indexOf(e.range.columnStart)
如果(s.getName()!==“work”| ind===-1)返回;
e、 range.offset(0,offsetCol[ind])
.setValue(新日期());
var vA=rg.getValues();

对于(var i=0;i这个修改如何

sh.getRange(rg.rowStart + i,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'HHmm') + "H");
发件人: 致: 或

  • 在此修改中,修改了
    “HHmm”
    的格式。并且删除了
    附录文本(“H”)
注:
  • 在上面的修改中,该值作为日期对象。如果您想将该值作为字符串,那么下面的修改如何

    sh.getRange(rg.rowStart + i,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'HHmm') + "H");
    
参考资料:

如果这不是您想要的方向,我很抱歉。

很好!很有效。之前我尝试过setNumberFormat(“HHmm'H”),格式的双引号和单引号。这不起作用。我在考虑谷歌工作表公式。我从没想过格式的单引号和双引号会起作用。谢谢@Tanaike@DeskDespair谢谢你的回复。我很高兴你的问题得到了解决。是的。情况不同在日期格式中,使用双引号。在中,它是
“text”:将引号内的任何文本显示为文本。
sh.getRange(rg.rowStart + i,1).setValue(new Date()).setNumberFormat('HHmm"H"');
sh.getRange(rg.rowStart + i,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'HHmm') + "H");