คำตอบสั้น ๆ
ลิงค์ชี้ไปยัง Q & A ที่มีสองคำตอบ แต่ไม่ใช่ของพวกเขาดูเหมือนว่าฉันจะเหมาะสม IE รหัสของหนึ่งในคำตอบนั้นไม่สมบูรณ์และทั้งคู่ก็ส่งอีเมลดังนั้นการยอมรับนั้นซับซ้อนเกินไปที่จะใช้เป็นจุดเริ่มต้น
ด้านล่างนี้เป็นสคริปต์ที่ใช้ง่ายกว่า
คำแนะนำ
สร้างแบบทดสอบและจดบันทึกID ของแบบฟอร์ม (ระหว่าง../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 นี้ฉันกำลังสำรวจวิธีการทำงานร่วมกันระหว่างผู้ใช้ปลายทางที่เขียนรหัสได้ดีขึ้น