Google Sheet Script tam olarak çalışmıyor

Aug 27 2020

Bu komut dosyasını tetiklemek için bir Google Formu kullanıyorum.
Komut dosyasını Oynat düğmesiyle çalıştırdığımda mükemmel çalışıyor.
Onsubmit tetikleyicisinin çalıştırmasına izin verdiğimde, onay kutusu iyi dolduruluyor ancak setValue tarihi doldurmuyor.
Ben de kullanmayı denedim setFormulaama aynı sonucu alıyorum.

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()) + ")");
}

Nihai amaç, form her gönderildiğinde, J sütununun A sütunundan formatlanmış atış tarihi ile doldurulmasını sağlamaktır.
Başka bir sayfada bir sayım çalıştırmak için bu biçime ihtiyacım var.

Başka bir seçenek de, eşleşmeleri için bu CountIfs komutuna bir biçim etiketi yerleştirmek olabilir.

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

Yanıtlar

ziganotschka Aug 27 2020 at 21:25

GÜNCEL CEVAP

Tetikleyici olmadan amaçlandığı gibi çalışırken bir işlevi tetikle çalıştırmada sorun yaşıyorsanız, aşağıdakileri kontrol edin:

  • Ağır dosyalar / form verileri için, sayfayı yeni form verileriyle doldurmada gecikme olabilir.

    • Çakışmaları önlemek için sheet.getLastRow(), sayfadaki verilere erişmeden veya verilere erişmeden önce elektronik tabloya yeni satırı doldurması için biraz zaman verin .

    • Utilities.sleep () ile kolayca noktalayabilirsiniz .

  • Tetikleyicinizin doğru şekilde kurulup kurulmadığını kontrol edin. Bunun için kontrol edin

    • tetik türü doğru
    • tetik doğru işleve bağlıdır
    • işlevi yeniden adlandırırken yeni bir tetikleyici oluşturarak çakışmalardan kaçının.
  • Sorunun tetik kısıtlamalarından kaynaklanmadığını kontrol edin

  • Bu, basit tetikleyicileri kullanırken yaygın bir hata kaynağıdır.

  • Tetikleyicinin yetkisi altında çalıştığı hesabın sayfayı / aralığı düzenleme izinlerine sahip olduğunu kontrol edin. Bu, tetikleyici sahibinin komut dosyasını çalıştıran kişinin farklı bir kişi olup olmadığını kontrol etmek için önemlidir.

  • Formüle setFormula()dahil etmenin gerekli olmadığını unutmayın.=

  • DATEVALUE()Yalnızca hücre tarih olarak doğru şekilde biçimlendirildiğinde beklenen sonucu döndüreceğini unutmayın.