Answers:
当您切换到Google Spreadsheets中的其他工作表时,请注意浏览器地址栏中的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
仅通过手动方式找到Sheet5是什么。如果位置发生变化,它gid
也会发生变化,您将无法再可靠地链接到它。
根据我的经验,执行此操作的最佳方法是将功能绑定到按钮/图像。唯一的缺点是您不能将参数和分配给按钮的脚本一起传递。因此,您将需要针对每个导航创建一个函数,但是它们可以在单个脚本文件中被调用。
脚步:
创建一个图像(插入->图像)并根据您的喜好设置其样式
使用以下命令创建自定义函数:
function showSheetByName(Name) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(Name);
SpreadsheetApp.setActiveSheet(sheet);
}
然后是按钮特有的功能
function showSheet5() {
showSheetByName("Sheet5");
}
最后将此功能分配给您的按钮
Assign Script...
showSheet5
现在,您应该可以单击按钮并导航到“ Sheet5”。也可以将其修改为也可以到达页面的特定区域。
var sheet = ss.getSheetByName(ss.getActiveCell().getValue());
-然后可以将“按钮”放在屏幕上的固定位置并将其标记为“在当前单元格中跳至图纸”,并将其分配为“ showSheetByName”(现在不需要参数)。要使用,只需突出显示带有工作表名称的单元格(例如Sheet5),然后单击按钮。这有点间接,但是可以正常工作,因为单击按钮不会将焦点从突出显示的单元格中移开。