Google apps script 在google工作表中添加按钮,将我链接到其他工作表
我需要一个脚本,当我在谷歌表单上做一个按钮。我可以点击它,并将带我到另一个工作表。类似于下面的内容,但我无法让它工作Google apps script 在google工作表中添加按钮,将我链接到其他工作表,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我需要一个脚本,当我在谷歌表单上做一个按钮。我可以点击它,并将带我到另一个工作表。类似于下面的内容,但我无法让它工作 function GoToSheet1() { var SPREADSHEET_URL = 'INSERT_SPREADSHEET_URL_HERE'; // Name of the specific sheet in the spreadsheet. var SHEET_NAME = 'INSERT_SHEET_NAME_HERE'; 提前感谢Jarrad你能在单
function GoToSheet1() {
var SPREADSHEET_URL = 'INSERT_SPREADSHEET_URL_HERE';
// Name of the specific sheet in the spreadsheet.
var SHEET_NAME = 'INSERT_SHEET_NAME_HERE';
提前感谢Jarrad你能在单元格中插入一个超链接,并将其格式化为颜色、边框等,使其看起来像一个按钮吗?然后保护该单元,使其他用户无法更改它。您可以在单元格中输入的公式很简单:
=HYPERLINK("http://link.to.spreadsheet", "Button Text")
如果您需要更复杂的东西,因此需要一个脚本,我们需要更多的信息。我不知道你为什么要用剧本来达到你解释的目的
例如-电子表格的每一行的工作表链接是否不同,或者电子表格中的每一工作表的工作表链接是否不同。也许与我们分享一张电子表格的编辑截图,让我们更清楚地了解您想要实现的目标。您可以在单元格中插入一个超链接,并将其格式化为颜色、边框等,使其看起来像一个按钮吗?然后保护该单元,使其他用户无法更改它。您可以在单元格中输入的公式很简单:
=HYPERLINK("http://link.to.spreadsheet", "Button Text")
如果您需要更复杂的东西,因此需要一个脚本,我们需要更多的信息。我不知道你为什么要用剧本来达到你解释的目的
例如-电子表格的每一行的工作表链接是否不同,或者电子表格中的每一工作表的工作表链接是否不同。也许可以分享一张电子表格的编辑截图,让我们更清楚地了解您想要实现的目标。这里有一种方法可以通过侧边栏或对话框实现。我更喜欢侧边栏,但它们占用更多的空间。您可以对此进行修改,以便只获得所需的图纸
function showGoToSheet() {
var allsheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var s = '<style>#mySheets{margin:5px 5px 5px 5px;background-color:#cccccc;}#btn0, #btn1, #btn2, #btn3, #btn4, #btn5, #btn6, #btn7, #btn8{margin:0px 5px 5px 0px;}</style><div id="mySheets">';
for (var i=0; i<allsheets.length; i++)
{
var sheet_name = allsheets[i].getName();
if (sheet_name != 'ActivityLog' && sheet_name != 'AllData' && sheet_name != 'Scratch' && sheet_name != 'Data Validation')
{
s += '<input id="btn' + i +'" type="button" value="Go to: ' + sheet_name + '" onClick="google.script.run.getMySheet(\'' + sheet_name + '\');" /><br />';
}
}
s += '<input type="button" value="Exit" onClick="google.script.host.close();" /></div>';
//myUtilities.dispStatus('My Sheets',s,600,400);
var html=HtmlService().createHtmlOutput(s).setWidth(600).setHeight(400);
SpreadsheetApp.getUi().showModelessDialog(html, 'My Sheets');
}
或者您可以尝试使用电子表格左下角的小图标。如果你有很多床单,我喜欢这个小图标
这里有一种使用边栏或对话框的方法。我更喜欢侧边栏,但它们占用更多的空间。您可以对此进行修改,以便只获得所需的图纸
function showGoToSheet() {
var allsheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var s = '<style>#mySheets{margin:5px 5px 5px 5px;background-color:#cccccc;}#btn0, #btn1, #btn2, #btn3, #btn4, #btn5, #btn6, #btn7, #btn8{margin:0px 5px 5px 0px;}</style><div id="mySheets">';
for (var i=0; i<allsheets.length; i++)
{
var sheet_name = allsheets[i].getName();
if (sheet_name != 'ActivityLog' && sheet_name != 'AllData' && sheet_name != 'Scratch' && sheet_name != 'Data Validation')
{
s += '<input id="btn' + i +'" type="button" value="Go to: ' + sheet_name + '" onClick="google.script.run.getMySheet(\'' + sheet_name + '\');" /><br />';
}
}
s += '<input type="button" value="Exit" onClick="google.script.host.close();" /></div>';
//myUtilities.dispStatus('My Sheets',s,600,400);
var html=HtmlService().createHtmlOutput(s).setWidth(600).setHeight(400);
SpreadsheetApp.getUi().showModelessDialog(html, 'My Sheets');
}
或者您可以尝试使用电子表格左下角的小图标。如果你有很多床单,我喜欢这个小图标
这很简单:
function SwitchToSheet() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('NAME OF THE SHEET'), true);
};
这很简单:
function SwitchToSheet() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('NAME OF THE SHEET'), true);
};
你也可以这样做 在脚本文件中,输入以下函数:
function SwitchToIntro() {
//go to sheet
var target = SpreadsheetApp.getActive().getSheetByName('YOUR_SHEET_NAME').activate();
//go to Range in this sheet(tab/section)
target.getRange("yourRange") /**or**/ target.getRangeByName("NAMED_RANGE") /**followed by**/ .activate();
};
然后在电子表格中转到:插入>绘图
画出你的按钮,在顶部的栏中有一些形状
然后在刚插入的图形上单击鼠标右键,并在选项中指定脚本
这是制作按钮和重定向的最短方法 你也可以这样做 在脚本文件中,输入以下函数:
function SwitchToIntro() {
//go to sheet
var target = SpreadsheetApp.getActive().getSheetByName('YOUR_SHEET_NAME').activate();
//go to Range in this sheet(tab/section)
target.getRange("yourRange") /**or**/ target.getRangeByName("NAMED_RANGE") /**followed by**/ .activate();
};
然后在电子表格中转到:插入>绘图
画出你的按钮,在顶部的栏中有一些形状
然后在刚插入的图形上单击鼠标右键,并在选项中指定脚本
这是制作按钮和重定向的最短方法 这样做有效,只需将Home更改为所需工作表的名称:
function showSheetByName(Name) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(Name);
SpreadsheetApp.setActiveSheet(sheet);
}
function Home() {
showSheetByName("Home");
}
这样做有效,只需将Home更改为所需工作表的名称:
function showSheetByName(Name) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(Name);
SpreadsheetApp.setActiveSheet(sheet);
}
function Home() {
showSheetByName("Home");
}
谢谢你的建议,但我还是想用床单上的按钮。我想制作一个仪表板,所以如果我点击1个按钮,它会将我带到特定选项卡上的特定工作表。如下所示,但带有链接函数ph{//1=第1行,14=第14列=N goToSheetData expansion,47,1;}函数gotosheetsheetsheetname,row,col{var sheet=SpreadsheetApp.getActive.getSheetByNamesheetName;SpreadsheetApp.setactivesheetsheetsheetsheetvar;var range=sheet.getRangerow,col spreadsheetactiverange;}谢谢你的建议,但我还是想用床单上的按钮。我想制作一个仪表板,所以如果我点击1个按钮,它会将我带到特定选项卡上的特定工作表。如下所示,但带有链接函数ph{//1=第1行,14=第14列=N goToSheetData expansion,47,1;}函数gotosheetsheetsheetname,row,col{var sheet=SpreadsheetApp.getActive.getSheetByNamesheetName;SpreadsheetApp.setactivesheetsheetsheetsheetvar;var range=sheet.getRangerow,col spreadsheetactiverange;}