Saya memiliki spreadsheet Google yang rumit dengan banyak lembar dan daftar isi. Apakah ada cara untuk membuat tautan ke nama lembar sehingga dengan satu klik langsung ke lembar? Yaitu: mengklik sel "sheet5" beralih ke sheet5?
Saya memiliki spreadsheet Google yang rumit dengan banyak lembar dan daftar isi. Apakah ada cara untuk membuat tautan ke nama lembar sehingga dengan satu klik langsung ke lembar? Yaitu: mengklik sel "sheet5" beralih ke sheet5?
Jawaban:
Saat Anda beralih ke sheet berbeda di Google Spreadsheets, perhatikan URL di bilah alamat browser Anda. Di akhir URL Anda akan melihat sesuatu seperti:
#gid=0
Nomor ini berubah ketika Anda mengganti lembar, dan menentukan lembar mana yang akan ditampilkan. Salin seluruh URL dan buat hyperlink ke sana dengan rumus ini:
=hyperlink("https://docs.google.com/spreadsheet/ccc?key=0AsaQpHJE_LShcDJ0dWNudHFZWVJqS1dvb3FLWkVrS0E#gid=0", "LINK TEXT")
Saya sudah banyak memikirkan pertanyaan ini sejak pertama kali menulis jawaban ini, dan saya menemukan solusi yang melibatkan skrip.
Dengan terbuka spreadsheet, klik Alat menu, kemudian Script editor ... . Rekatkan semua kode ini ke editor:
function onOpen(event) {
var ss = event.source;
var menuEntries = [];
menuEntries.push({name: "Go to sheet...", functionName: "showGoToSheet"});
ss.addMenu("Tasks", menuEntries);
}
function showGoToSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allsheets = ss.getSheets();
var app = UiApp.createApplication();
app.setTitle("Go to sheet...").setWidth(800).setHeight(600);
var table = app.createFlexTable();
table.setCellPadding(5).setCellSpacing(0);
var goToSheetClick = app.createServerHandler('handleGoToSheetClick');
var widgets = [];
for (var i = 0; i < allsheets.length; i++) {
var sheet_name = allsheets[i].getName();
widgets[i] = app.createHTML(sheet_name).setId(sheet_name).addClickHandler(goToSheetClick);
table.setWidget(i, 1, widgets[i])
}
var panel = app.createSimplePanel();
panel.add(table);
app.add(panel);
ss.show(app);
}
function handleGoToSheetClick(e) {
var sheet_name = e.parameter.source;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheet_name);
sheet.activate();
var app = UiApp.getActiveApplication();
app.close();
return app;
}
Simpan skrip, lalu segarkan spreadsheet. Setelah satu atau dua detik menu baru, Tugas , akan muncul setelah Bantuan . Ada satu item dalam menu ini: Pergi ke sheet ...
Item menu ini akan membuka panel dengan daftar nama semua lembar di spreadsheet saat ini. Itu tidak terlihat seperti itu, tetapi jika Anda mengklik salah satu nama lembar, lembar itu akan datang ke depan.
Sebagai jawaban untuk pertanyaan lain, skrip ini ditingkatkan untuk menyertakan tampilan dan tombol yang dapat digulir.
gid=7
.
gid=7
, itu harus lembar kedelapan dari kiri.
gid
Sheet5, hanya secara manual. Jika posisinya berubah, itu gid
berubah, dan Anda tidak dapat lagi menautkannya dengan andal.
Cara terbaik untuk melakukan ini dari pengalaman saya adalah mengikat fungsi ke tombol / gambar. Satu-satunya kelemahan adalah bahwa Anda tidak dapat melewatkan parameter bersama dengan skrip yang ditetapkan untuk suatu tombol. Karena ini, Anda harus membuat fungsi khusus untuk setiap navigasi tetapi mereka dapat memanggil menjadi dalam file skrip tunggal.
Langkah:
Buat gambar (Sisipkan -> gambar) dan gaya sesuai keinginan Anda
Buat fungsi khusus dengan yang berikut:
function showSheetByName(Name) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(Name);
SpreadsheetApp.setActiveSheet(sheet);
}
dan kemudian fungsi khusus untuk tombol Anda
function showSheet5() {
showSheetByName("Sheet5");
}
Akhirnya tetapkan fungsi ini ke tombol Anda
Assign Script...
showSheet5
Anda sekarang harus dapat mengklik tombol Anda dan menavigasi ke "Sheet5". Ini juga dapat dimodifikasi untuk pergi ke area spesifik lembar juga.
var sheet = ss.getSheetByName(ss.getActiveCell().getValue());
- Anda kemudian dapat meletakkan "tombol" pada tempat yang tetap di layar dan beri label "Langsung ke lembar dalam sel saat ini" dan tetapkan "showSheetByName" (yang sekarang tidak memerlukan parameter). Untuk menggunakannya, cukup sorot sel dengan nama lembar (mis. Sheet5) dan klik tombol. Ini sedikit tidak langsung tetapi berfungsi karena mengklik tombol tidak menghilangkan fokus dari sel yang disorot.