Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 在google工作表中添加按钮,将我链接到其他工作表_Google Apps Script_Google Sheets - Fatal编程技术网

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;}