Google apps script 生成时间戳后,在时间戳旁边插入文本
我的想法是,当您在B列中输入一个值时,它将生成一个时间戳。 时间戳的格式为“HHmm'H”。 示例:2310H 问题是在生成时间戳时,没有添加后缀“H” 我的 我已经在中阅读了google应用程序脚本文档。 我仍然无法让它工作 我的代码: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(),
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");