मेरे पास कई शीट और सामग्री की तालिका के साथ एक जटिल Google स्प्रेडशीट है। क्या शीट नामों के लिए लिंक बनाने का कोई तरीका है ताकि एक क्लिक के साथ सीधे शीट पर जा सकें? वह है: सेल "शीट 5" पर क्लिक करके शीट 5 पर स्विच करना?
मेरे पास कई शीट और सामग्री की तालिका के साथ एक जटिल Google स्प्रेडशीट है। क्या शीट नामों के लिए लिंक बनाने का कोई तरीका है ताकि एक क्लिक के साथ सीधे शीट पर जा सकें? वह है: सेल "शीट 5" पर क्लिक करके शीट 5 पर स्विच करना?
जवाबों:
जब आप Google स्प्रेडशीट में एक अलग शीट पर जाते हैं, तो अपने ब्राउज़र के एड्रेस बार में URL पर ध्यान दें। URL के अंत में आपको कुछ इस तरह देखना चाहिए:
#gid=0
जब आप शीट स्विच करते हैं तो यह संख्या बदल जाती है, और यह प्रदर्शित करने के लिए कौन सी शीट निर्दिष्ट करता है। पूरे URL को कॉपी करें और इस सूत्र के साथ एक हाइपरलिंक बनाएं:
=hyperlink("https://docs.google.com/spreadsheet/ccc?key=0AsaQpHJE_LShcDJ0dWNudHFZWVJqS1dvb3FLWkVrS0E#gid=0", "LINK TEXT")
मैंने इस प्रश्न के बारे में बहुत सोचा है क्योंकि मैंने पहली बार यह उत्तर लिखा था, और मैं एक समाधान के साथ आया जिसमें एक स्क्रिप्ट शामिल है।
स्प्रेडशीट खोल कर, क्लिक करें उपकरण मेनू, फिर स्क्रिप्ट संपादक ... । इस सभी कोड को संपादक में पेस्ट करें:
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;
}
स्क्रिप्ट को सहेजें, फिर स्प्रेडशीट को ताज़ा करें। दूसरे या दो नए मेनू के बाद, टास्क , हेल्प के बाद दिखाई देगा । इस मेनू में एक आइटम है: शीट पर जाएं ...
यह मेनू आइटम मौजूदा स्प्रेडशीट में सभी शीट्स के नामों की सूची के साथ एक पैनल खोलेगा। यह ऐसा नहीं दिखता है, लेकिन यदि आप शीट के नामों में से एक पर क्लिक करते हैं, तो वह शीट सामने आ जाएगी।
एक अन्य प्रश्न के उत्तर के रूप में, इस स्क्रिप्ट को स्क्रॉल करने योग्य दृश्य और बटन शामिल करने के लिए सुधार किया गया था ।
gid=7
।
gid=7
, तो यह बाईं ओर से आठवीं शीट होनी चाहिए।
gid
शीट 5 केवल मैन्युअल रूप से क्या है। यदि यह स्थिति परिवर्तन है, तो यह gid
परिवर्तन है, और आप इसे मज़बूती से लिंक नहीं कर सकते।
मेरे अनुभव से ऐसा करने का सबसे अच्छा तरीका एक फ़ंक्शन को बटन / छवि से जोड़ना है। एकमात्र दोष यह है कि आप एक बटन को सौंपी गई स्क्रिप्ट के साथ पैरामीटर पारित नहीं कर सकते हैं। इसके कारण आपको प्रत्येक नेविगेशन के लिए एक फ़ंक्शन को विशिष्ट बनाने की आवश्यकता होगी, लेकिन वे एक स्क्रिप्ट फ़ाइल में कॉल कर सकते हैं।
कदम:
एक छवि बनाएं (डालें -> छवि) और इसे अपनी पसंद के अनुसार स्टाइल करें
निम्नलिखित के साथ एक कस्टम फ़ंक्शन बनाएँ:
function showSheetByName(Name) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(Name);
SpreadsheetApp.setActiveSheet(sheet);
}
और फिर अपने बटन के लिए एक समारोह विशिष्ट
function showSheet5() {
showSheetByName("Sheet5");
}
अंत में इस फ़ंक्शन को अपने बटन पर असाइन करें
Assign Script...
showSheet5
अब आपको अपने बटन पर क्लिक करने और "शीट 5" पर नेविगेट करने में सक्षम होना चाहिए। यह चादर के एक विशिष्ट क्षेत्र में जाने के लिए भी संशोधित किया जा सकता है।
var sheet = ss.getSheetByName(ss.getActiveCell().getValue());
- फिर आप स्क्रीन पर एक निश्चित स्थान पर "बटन" डाल सकते हैं और इसे "वर्तमान सेल में शीट पर जाएं" लेबल करें और इसे "showSheetByName" असाइन करें (जिसे अब पैरामीटर की आवश्यकता नहीं है)। उपयोग करने के लिए, बस सेल को शीट नाम (जैसे शीट 5) के साथ हाइलाइट करें और बटन पर क्लिक करें। यह थोड़ा अप्रत्यक्ष है लेकिन काम करता है क्योंकि बटन पर क्लिक करने से हाइलाइटेड सेल से फोकस नहीं हटता है।