AppScript'te belirli Sayfada onOpen
Bir onOpenyürütme kodum var, ancak yalnızca belirli bir sayfa açıldığında yürütülmesini istiyorum (Örneğin Sheet1, onOpen işlevini açarken çalışmalıdır.) Bunu nasıl başaracağını bilen var mı?
İşte tam olarak elde etmek istediğim şey:
- Elektronik tablonun açılışında, aktif sayfanın sayfa1 olup olmadığını kontrol edin. Daha sonra, aşağıda gösterildiği gibi, bu sayfadaki bir koşulu yürütürse:
onOpen() { //If the active sheet is "Sheet1" then perform this: //Sheet Execution comes here. }
Ancak yukarıdaki ifadeyle ilgili sorun şu:
onOpen yalnızca sayfa açıldığında kontrol eder. Etkin sayfanın "Sayfa1" olduğu her seferinde kontrol etmek istiyorum. Örneğin, kullanıcı başlangıçta elektronik tabloyu açar, "Sayfa1" e gelir. Şimdi koşul kontrol edilir ve çıktı görüntülenir, ancak kullanıcı sekmeyi "Sayfa2" diyecek şekilde değiştirir ve sonra "Sayfa1" e geri gelirse ne olur. Bu durumda uygulanmaz onOpen(). Kullanıcı her geldiğinde veya "Sayfa1" e geçtiğinde kontrolümü gerçekleştirmek istiyorum.
Şimdi başka bir senaryo:
kullanma onSelectionChange:
onSelectionCHange() { //If the active sheet is "Sheet1" then perform this: //Sheet Execution comes here. }
Şimdi bu, kullanıcı "Sayfa1" e her geçtiğinde işe yarayacak, ancak sorun şu ki, kullanıcı "Sayfa1" onSelectionChangede farklı hücrelere geçse bile tetiklenecek ki bu yine istenmeyen bir şey. Tek istediğim işlevi yalnızca sekme / sayfa "Sayfa1" olarak değiştirildiğinde ve yalnızca elektronik tablo açıldığında veya herhangi bir seçim hücresi değiştirildiğinde değil, işlevi tetiklemek.
Yanıtlar
Açıklama:
onOpenİşlev içinde bir kod bloğu yürütmek için yalnızca elektronik tablo dosyasını Sayfa1'den açtığınızda , aşağıdaki if koşulunu oluşturabilirsiniz:
function onOpen(e) {
const as = e.source.getActiveSheet().getName();
if (as == 'Sheet1'){
//code you want to be executed when you open the spreadsheet from Sheet1
}
}
Dezavantaj:
OnOpen ne zaman işlevi yalnızca yürütüldüğünde açmak tablo dosyasını. Sayfalar arasında yalnızca geçiş yapıp onOpen'ın çalışmasını bekleyemezsiniz.
Çözüm:
Farklı sayfalar arasında geçiş yaparken bir kodu yürütmek için kullanabilirsiniz onSelectionChange(e). Aşağıdaki örnek hücre A1 değerini ayarlayan Sayfa1'ın bir geçiş yaparken farklı Yaprak Sayfa1'ı :
function onSelectionChange(e) {
const as = e.source.getActiveSheet();
if (as.getName() == 'Sheet1'){
as.getRange('A1').setValue("This is Sheet1");
}
}
Ve işte Sayfa1'e geçerken bir kod yürütmek için genel bir kod şablonu :
function onSelectionChange(e) {
const as = e.source.getActiveSheet();
if (as.getName() == 'Sheet1'){
// put your code here
}
}
Referanslar:
- onOpen (e)
- onSelectionChange (e)