2016-04-11 14 views
1

Şu an bu komut üzerinde Google Apps Komut Dosyası üzerinde bir süredir çalışıyorum ve bunu neredeyse anladığımı düşünüyorum. Tamamlanmamasına rağmen henüz bir çift göz kullanabiliyordum. Ben geçici ve gerçek tarihleri ​​ile uğraşan bir levha üzerinde çalışıyorumDeğer bir tarihse bitişik hücrenin temiz hücre değeri

: Ben bunu yapmaya çalışıyorum ne

. Bu iki tarih bitişik sütunlarda. "Gerçek" tarih, hücresine dolduğunda, "geçici" tarihin silinmesini isterim. İşte

benim senaryom şimdiye kadar geçerli:

Bu komut çalıştırmak için yapmanız gereken ne yapıyoruz
function onEdit() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var range = sheet.getRange('F4:F'); 
    var range2 = sheet.getRange('E4:E'); 
    var rule = range.getDataValidation(); 
    if (rule != null) { 
    var criteria = rule.getCriteriaType(); 
    var args = rule.getCriteriaValues(); 
    var clear = range2.clear({validationsOnly: false}); 
    } 
} 

?

cevap

0

F sütununun doldurulması durumunda E sütunundaki değeri silmek istediğiniz anlaşılıyor. Eğer öyleyse, veri doğrulama kuralları ile uğraşma ihtiyacını görmüyorum. Aşağıdaki komut dosyası düzenlenmiş hücrenin F sütununda, satır> = 4 olduğunu ve hücredeki yeni değerin bir tarih olduğunu kontrol eder. Bu koşullar tutulursa, hücreyi sola temizler (offset kullanarak).

function onEdit(e) { 
    if (e.range.getColumn() == 6 && e.range.getRow() >= 4) { 
    if (e.range.getValue() instanceof Date) { 
     e.range.offset(0, -1).clear(); 
    } 
    } 
} 

Not: Bu komut onEdit işleve geçirilen event object kullanır. İlginç bir şekilde, "değer" özelliğinin burada yararlı olmadığı ortaya çıktı çünkü bir kullanıcı bir tarih girdiğinde bile bir tarih nesnesi değildir. Bunun yerine e.range.getValue() kullanıyorum.

İlgili konular