onOpen pada Sheet tertentu di AppScript
Saya memiliki onOpenkode eksekusi tetapi saya ingin menjalankannya hanya ketika lembar tertentu dibuka (Misalnya pada pembukaan Sheet1fungsi onOpen harus dijalankan.) Apakah ada yang tahu cara mencapai ini?
Inilah yang sebenarnya ingin saya capai:
- Saat spreadsheet terbuka, periksa apakah lembar aktif adalah sheet1. Dalam kasus itu kemudian jalankan kondisi dalam sheet itu, seperti yang ditunjukkan di bawah ini:
onOpen() { //If the active sheet is "Sheet1" then perform this: //Sheet Execution comes here. }
Tapi inilah masalahnya dengan pernyataan di atas:
onOpen hanya akan memeriksa setelah lembar dibuka. Saya ingin memeriksanya setiap kali lembar aktif adalah "Sheet1". Jadi misalnya, awalnya pengguna membuka spreadsheet, mereka diarahkan ke "Sheet1" Sekarang kondisi dicentang dan keluaran ditampilkan, tetapi bagaimana jika pengguna mengubah tab menjadi "Sheet2" dan kemudian kembali ke "Sheet1". Dalam hal onOpen()itu tidak akan dijalankan. Saya ingin melakukan pemeriksaan saya setiap kali pengguna mendarat atau beralih ke "Sheet1".
Sekarang inilah skenario lain:
menggunakan onSelectionChange:
onSelectionCHange() { //If the active sheet is "Sheet1" then perform this: //Sheet Execution comes here. }
Sekarang ini akan bekerja setiap kali pengguna beralih ke "Sheet1", tapi inilah masalahnya, bahkan jika pengguna beralih ke sel yang berbeda di "Sheet1" onSelectionChangeakan dipicu, yang lagi-lagi merupakan sesuatu yang tidak diinginkan. Yang saya inginkan hanyalah memicu fungsi setiap kali tab / sheet diubah menjadi "Sheet1" dan tidak hanya ketika spreadsheet dibuka atau sel pilihan diubah.
Jawaban
Penjelasan:
Untuk mengeksekusi blok kode di dalam onOpenfungsi hanya ketika Anda membuka file spreadsheet dari Sheet1 maka Anda dapat membuat kondisi if berikut:
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
}
}
Kekurangan:
The OnOpen Fungsi hanya dijalankan ketika Anda membuka dengan spreadsheet berkas. Anda tidak bisa begitu saja beralih antar lembar dan berharap onOpen berfungsi.
Larutan:
Untuk menjalankan kode saat beralih di antara lembar yang berbeda, Anda dapat menggunakan onSelectionChange(e). Contoh berikut menetapkan nilai sel A1 Lembar1 saat Anda beralih dari lembar berbeda ke Lembar1 :
function onSelectionChange(e) {
const as = e.source.getActiveSheet();
if (as.getName() == 'Sheet1'){
as.getRange('A1').setValue("This is Sheet1");
}
}
Dan berikut adalah template kode umum untuk mengeksekusi kode saat beralih ke Sheet1 :
function onSelectionChange(e) {
const as = e.source.getActiveSheet();
if (as.getName() == 'Sheet1'){
// put your code here
}
}
Referensi:
- onOpen (e)
- onSelectionChange (e)