마지막 업데이트의 타임 스탬프를 표시하기 위해 열 2를 자동 업데이트하는 방법을 찾으려고합니다. 나는 문서가 마지막 수정의 타임 스탬프를 보여 주지만 동시에 문서에 액세스하고 조정하는 많은 클라이언트가 있습니다. 그래서이 요청이 접수되었습니다. 코딩을하지 않았다는 것을 인정할 것입니다.
Myanda는 올바른 경로를 따라 보이는 것을 게시했지만 필요에 맞게 구현하는 방법을 모르겠습니다.
마지막 업데이트의 타임 스탬프를 표시하기 위해 열 2를 자동 업데이트하는 방법을 찾으려고합니다. 나는 문서가 마지막 수정의 타임 스탬프를 보여 주지만 동시에 문서에 액세스하고 조정하는 많은 클라이언트가 있습니다. 그래서이 요청이 접수되었습니다. 코딩을하지 않았다는 것을 인정할 것입니다.
Myanda는 올바른 경로를 따라 보이는 것을 게시했지만 필요에 맞게 구현하는 방법을 모르겠습니다.
답변:
좋아, 다음은 이전 답변의 수정 된 코드 버전입니다.
function onEdit(e) {
// Your sheet params
var sheetName = "MySheet";
var dateModifiedColumnIndex = 2;
var dateModifiedColumnLetter = 'B';
var range = e.range; // range just edited
var sheet = range.getSheet();
if (sheet.getName() !== sheetName) {
return;
}
// If the column isn't our modified date column
if (range.getColumn() != dateModifiedColumnIndex) {
var row = range.getRow();
var time = new Date();
time = Utilities.formatDate(time, "GMT-08:00", "MM/dd/yy, hh:mm:ss");
var dateModifiedRange = sheet.getRange(dateModifiedColumnLetter + row.toString());
dateModifiedRange.setValue(time);
};
};
이것이하는 일은 변경된 셀의 행을 잡고 해당 특정 행의 두 번째 열에 타임 스탬프를 할당하는 것입니다.
구현하려면 스프레드 시트로 이동하여 Tools
>를 클릭하면됩니다 Script Editor
. 결과 편집기 페이지에서 여기에 붙여 넣으십시오. 이것은 onEdit()
함수 이므로 스프레드 시트의 셀에 다른 것을 추가하지 않고 작동하며 편집기에 붙여 넣어 저장하면됩니다.
타임 스탬프의 경우 형식을 MM / dd / yy로 설정하고 시간을 남겼습니다. 변경하려면의 사용을 변경하면됩니다 Utilities.formatDate
.
.formatDate()
하면 "년 중 일"(예 : 12 월 31 일의 365)이 표시됩니다. "dd"가 필요할 수 있습니다. 날짜 형식 값의 전체 목록은 여기에서 확인할 수 있습니다. docs.oracle.com/javase/7/docs/api/java/text/…
참고로, 허용되는 답변은 DD
요일 형식으로 사용 되므로 "312"와 같은 것을 얻을 수 있습니다 (예 : 연도 312 일).
나는 이것을 사용했다 :
"yyyy-MM-dd, hh:mm:ss"
이것을 얻으려면 :
2013-11-12, 03:43:20
나는 이것이 여기에 넣기를 바란다. 아래는 위 함수의 수정이지만 열이 아닌 행 (행 9)에 대해 수행합니다. 열 할당을 사용하는 방법을 알아내는 것은 매우 실망 스럽지만 매우 간단했습니다. 원본 코드에 대한 OnenOnlyWalter에 감사드립니다.
function onEdit() {
var s = SpreadsheetApp.getActiveSheet(); // Get spreadsheet name
var r = s.getActiveCell(); // store active cell name in current spreadsheet
var cell1 = 9 // This is the row I want to put values
if(r.getRow() != cell1) { // Ignores this row (where I put the dates)
var column = r.getColumn(); // Get column # from active cell
var time = new Date(); // Get date and time of last mod
time = Utilities.formatDate(time, "GMT-08:00", "MM/DD/yy, hh:mm:ss"); // Format date and time
SpreadsheetApp.getActiveSheet().getRange(cell1,column).setValue(time); // put in time in cell
};
};