Google Sheet Script tidak sepenuhnya berjalan

Aug 27 2020

Saya menggunakan Formulir Google untuk memicu skrip ini.
Ketika saya menjalankan skrip dengan tombol Putar, itu berfungsi dengan sempurna.
Ketika saya membiarkan pemicu onsubmit menjalankannya, kotak centang terisi dengan baik tetapi tanggal setValue tidak.
Saya juga sudah mencoba menggunakan setFormulatetapi saya mendapatkan hasil yang sama.

function AddCheckBox_toSchoolLunchForm(F) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1")
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(sheet.getLastRow(), 8);
  range.clearContent();
  range.setDataValidation(rule);
  var FormulaCell = sheet.getRange(sheet.getLastRow(), 10);
  FormulaCell.setFormula("=DATEVALUE(A" + (sheet.getLastRow()) + ")");
}

Tujuan akhirnya adalah agar kolom J terisi dengan tanggal format pengambilan dari kolom A setiap kali formulir dikirimkan.
Saya membutuhkan format ini untuk menjalankan hitungan di lembar lain.

Pilihan lain adalah entah bagaimana menyematkan tag format ke dalam perintah CountIf ini sehingga cocok.

=COUNTIFS('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)

Jawaban

ziganotschka Aug 27 2020 at 21:25

JAWABAN DIPERBARUI

Jika Anda mengalami masalah dalam menjalankan fungsi pada pemicu saat berfungsi sebagaimana mestinya tanpa pemicu, periksa hal berikut:

  • Untuk file berat / data formulir, mereka bisa menjadi penundaan dalam mengisi lembar dengan data formulir baru.

    • Untuk menghindari konflik, beri waktu spreadsheet untuk mengisi baris baru sebelum mengambil sheet.getLastRow()atau mengakses data di lembar.

    • Anda dapat memberi titik dengan mudah misalnya dengan Utilities.sleep () .

  • Periksa apakah pemicu Anda telah dipasang dengan benar. Untuk ini periksa itu

    • jenis pemicunya benar
    • pemicu terikat ke fungsi yang benar
    • hindari konflik dengan membuat pemicu baru saat mengganti nama funciton.
  • Periksa bahwa masalahnya bukan karena batasan pemicu

  • Ini adalah sumber kesalahan umum saat menggunakan pemicu sederhana.

  • Periksa bahwa akun yang otorisasinya dijalankan pemicu memiliki izin untuk mengedit sheet / rentang. Ini penting untuk memeriksa ketika pemilik pemicu adalah orang yang berbeda dari orang yang menjalankan skrip secara manual.

  • Perhatikan bahwa untuk setFormula()itu tidak perlu memasukkan =rumus ke dalam

  • Perhatikan bahwa DATEVALUE()hanya akan mengembalikan hasil yang diharapkan jika sel diformat dengan benar sebagai tanggal