ล้างข้อผิดพลาดของสคริปต์ในรายการแบบฟอร์มในวันถัดไป

ฉันใช้สคริปต์ต่อไปนี้เพื่อล้างรายการแบบฟอร์ม Google เวลาเที่ยงคืนในแต่ละวัน

function clearRange() {
    var sheetActive = SpreadsheetApp.openById("1DNeHRC41ryRY9s8wZmlqmoIEhm8MqD601BvqoV26V3o").getSheetByName("Form responses 1");
    sheetActive.getRange('A2:E').clearContent();
}

ปัญหา:

  • ในวันถัดไป รายการแบบฟอร์มจะถูกเพิ่มลงในแผ่นงานโดยเริ่มจากแถวด้านล่างรายการของวันก่อนหน้า ไม่ใช่แถวที่ 2

ตัวอย่าง:

  • เมื่อวานนี้ มีการป้อนแบบฟอร์ม 10 รายการในชีต (แถว 2 ถึง 11) สคริปต์ทำงานตอนเที่ยงคืนและล้างรายการ
  • วันนี้ มีการป้อนห้ารายการในแบบฟอร์ม แต่ป้อนตั้งแต่แถวที่ 12 เป็นต้นไป

ฉันต้องการให้ชีตเคลียร์และรีเซ็ต เพื่อเริ่มป้อนรายการแบบฟอร์มในแถวที่ 2 ทุกวัน

เป็นไปได้ไหม? ถ้าเป็นเช่นนั้น จำเป็นต้องเปลี่ยนแปลงสูตรอะไรบ้าง? ขอบคุณสำหรับความช่วยเหลือ.


person Terry Heath    schedule 25.08.2020    source แหล่งที่มา


คำตอบ (1)


สารละลาย:

ลองลบแถวแทน:

function clearRange() {
  const sheetActive = SpreadsheetApp.openById("1DNeHRC41ryRY9s8wZmlqmoIEhm8MqD601BvqoV26V3o").getSheetByName("Form responses 1");
  const form_size = sheetActive.getLastRow()-1;
  sheetActive.deleteRows(2, form_size);
}

ก่อนที่คุณจะเริ่มใช้โซลูชันนี้ เฉพาะครั้งแรกเท่านั้น ให้ลบแถวทั้งหมดด้วยตนเอง เริ่มจากแถวที่สองจนถึงแถวก่อนรายการใหม่จะถูกเพิ่ม ดังนั้นรายการใหม่จะอยู่ที่แถวที่สอง

คำแนะนำ:

อย่างไรก็ตาม ไม่แนะนำให้แตะแผ่น การตอบกลับแบบฟอร์ม ฉันขอแนะนำให้คุณสร้างชีตแยกต่างหากเพื่อค้นหาเฉพาะบันทึกของวันนี้ และปล่อยให้ข้อมูลดิบอยู่ในชีตการตอบกลับแบบฟอร์ม ด้วยวิธีนี้ คุณไม่จำเป็นต้องล้างหรือลบรายการฟอร์มเก่า แต่ไม่ต้องแตะต้องข้อมูลดิบที่อาจใช้เป็นข้อมูลอ้างอิงในอนาคต

อ้างอิง:

person soMario    schedule 25.08.2020