짧은 답변
이 링크 는 두 가지 답변이 있지만 그 중 비 응답 인 Q & A를 가리 킵니다. IE는 답변 중 하나의 코드가 불완전하며 둘 다 이메일을 보내므로 채택이 너무 복잡하여 출발점으로 사용할 수 없습니다.
아래는 채택하기 쉬운 스크립트입니다.
명령
테스트 양식을 작성하고 양식 ID ( URL 사이 ../d/
및 /edit
URL)를 기록하십시오.
새 스프레드 시트에 응답을 보내도록 양식을 설정하십시오.
새 스프레드 시트로 리디렉션됩니다. 활성 시트 이름을 기록하고 (원하는 경우 이름을 변경) 응답 편집 URL을 보유하는 데 사용할 열에 헤더 를 추가하십시오 ( 예 :) Edit Url
. 참고 : 대문자 사용은 매우 중요하므로 작성 방법에 매우주의하십시오.
Tools > Script editor
스프레드 시트에 바인드 된 Google Apps Script 프로젝트를 추가 하려면 로 이동 하십시오.
기본 코드를 아래 코드로 바꿉니다 (경우에 따라 전역 변수를 편집해야 함).
프로젝트를 저장 한 다음 설치 가능한 양식 서밋 트리거를 추가하십시오 ( "권한 부여"대화 상자가 표시되면 "권한 검토"및 "허용"을 클릭하십시오).
솔루션을 테스트하기 위해 샘플 응답을 제출하십시오.
암호
/*
* Global Variables
*/
// Form URL
var formURL = 'https://docs.google.com/forms/d/form-id/viewform';
// Sheet name used as destination of the form responses
var sheetName = 'Form Responses 1';
/*
* Name of the column to be used to hold the response edit URLs
* It should match exactly the header of the related column,
* otherwise it will do nothing.
*/
var columnName = 'Edit Url' ;
// Responses starting row
var startRow = 2;
function getEditResponseUrls(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var columnIndex = headers[0].indexOf(columnName);
var data = sheet.getDataRange().getValues();
var form = FormApp.openByUrl(formURL);
for(var i = startRow-1; i < data.length; i++) {
if(data[i][0] != '' && data[i][columnIndex] == '') {
var timestamp = data[i][0];
var formSubmitted = form.getResponses(timestamp);
if(formSubmitted.length < 1) continue;
var editResponseUrl = formSubmitted[0].getEditResponseUrl();
sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl);
}
}
}
추가 자료
질문과 답변의 내용 으로 요점 을 만들었습니다 . 이 b / c 저는 코드를 작성하는 최종 사용자들 사이에서보다 효과적으로 협업 할 수있는 방법을 모색하고 있습니다.