내 생각은 B 열에 값을 입력하면 타임 스탬프가 생성된다는 것입니다. 타임 스탬프의 형식은 "HHmm'H '"입니다. 예 : 2310H
문제는 타임 스탬프가 생성 될 때 접미사 "H"가 추가되지 않은 것입니다.
https://i.stack.imgur.com/rxvJG.png
텍스트 삽입 및 삭제 에서 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();
}
}
}
이 수정은 어떻습니까?
sh.getRange(rg.rowStart + i,1).setValue(new Date()).setNumberFormat("HHmm").appendText("H");
sh.getRange(rg.rowStart + i,1).setValue(new Date()).setNumberFormat("HHmm\"H\"");
또는
sh.getRange(rg.rowStart + i,1).setValue(new Date()).setNumberFormat('HHmm"H"');
"HHmm"
이 수정되었습니다. 그리고 appendText("H")
제거되었습니다.수정 위의 값은 날짜 개체로 입력됩니다. 값을 문자열로 넣고 싶다면 다음 수정은 어떻습니까?
sh.getRange(rg.rowStart + i,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'HHmm') + "H");
이것이 당신이 원하는 방향이 아니라면 사과드립니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다