指向其他工作簿中其他工作表的超链接的下拉列表
Drop-down list of hyperlinks to other sheets in other workbooks
通过这段代码
function onEdit(e) {
if(e.source.getActiveSheet() && e.range.getRow() === 1 && e.range.getColumn() === 1) {
e.source.getSheetByName(e.value).activate();
}
}
function sheetnames() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) out.push( [ sheets[i].getName() ] )
return out
}
我可以通过下拉列表切换标签页。也就是说,如果我从下拉列表中 select 名称 'sheet 2',它会将我重定向到 sheet 2
我想知道是否可以修改此代码,以便当我 select 下拉列表中的某个选项时,它会将我带到另一项工作sheet(而不是标签)
我相信你的目标如下。
- 当sheet“公式”上的单元格“D7”的下拉列表更改为
Sucesso do Cliente
时,您想打开https://docs.google.com/spreadsheets/d/1BbuJfPPOSdbvHZ5b8xVTMndeydNfslDhPLm9ftL1pLU/edit?usp=sharing
。
在这种情况下,下面的示例脚本怎么样?
示例脚本:
请将以下脚本复制粘贴到“In this worksheet:”的Spreadsheet脚本编辑器中。而且,please install OnEdit trigger to the function installedOnEdit
。使用此脚本时,请将sheet“公式”中单元格“D7”的下拉列表更改为Sucesso do Cliente
。这样,脚本就是运行.
function installedOnEdit(e) {
const range = e.range;
const sheet = range.getSheet();
if (sheet.getSheetName() != "Formulário" || range.getA1Notation() != "D7" || range.getValue() != "Sucesso do Cliente") return;
const url = "https://docs.google.com/spreadsheets/d/1BbuJfPPOSdbvHZ5b8xVTMndeydNfslDhPLm9ftL1pLU/edit?usp=sharing";
const html = `<script>window.open('${url}', '_blank');google.script.host.close();</script>`;
SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(html), "sample");
}
- 当您将 sheet“公式”中单元格“D7”的下拉列表更改为
Sucesso do Cliente
时,将打开一个对话框,[=12] 的 URL =] 由对话框的 Javascript 打开。
注:
- 在此示例脚本中,打开了您期望的 URL。但是,1st Spreadsheet无法关闭。
参考:
合并 onEdit 函数
此功能允许您使用 A1 的数据验证跳转到同一电子表格中的其他工作表,以及使用 B1 的数据验证跳转到其他电子表格的不同工作表
function onMyEdit(e) {
//e.source.toast("Entry");
//Logger.log(JSON.stringify(e));
const sheet = e.range.getSheet();
if (e.range.columnStart == 2 && e.range.rowStart == 1 && e.value ) {
const shts = {"Sheet1":"1553288907","Sheet2":"1273539231"};
//e.source.toast('Flag1');
const url = `https://docs.google.com/spreadsheets/d/11yNxdh/edit#gid=${shts[e.value]}?usp=sharing`;
//Logger.log(url);
const html = `<script>window.open('${url}', '_blank');google.script.host.close();</script>`;
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html), "sample");
}
if(e.range.rowStart == 1 && e.range.columnStart == 1 && e.value) {
e.source.getSheetByName(e.value).activate();
}
}
在我的示例中,我使用了列表 Sheet1、Sheet2 中的数据验证,您可以将 id 添加到 shts 对象并将其插入到 url 中,例如 ${shts[e.value] [id]}
通过这段代码
function onEdit(e) {
if(e.source.getActiveSheet() && e.range.getRow() === 1 && e.range.getColumn() === 1) {
e.source.getSheetByName(e.value).activate();
}
}
function sheetnames() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) out.push( [ sheets[i].getName() ] )
return out
}
我可以通过下拉列表切换标签页。也就是说,如果我从下拉列表中 select 名称 'sheet 2',它会将我重定向到 sheet 2
我想知道是否可以修改此代码,以便当我 select 下拉列表中的某个选项时,它会将我带到另一项工作sheet(而不是标签)
我相信你的目标如下。
- 当sheet“公式”上的单元格“D7”的下拉列表更改为
Sucesso do Cliente
时,您想打开https://docs.google.com/spreadsheets/d/1BbuJfPPOSdbvHZ5b8xVTMndeydNfslDhPLm9ftL1pLU/edit?usp=sharing
。
在这种情况下,下面的示例脚本怎么样?
示例脚本:
请将以下脚本复制粘贴到“In this worksheet:”的Spreadsheet脚本编辑器中。而且,please install OnEdit trigger to the function installedOnEdit
。使用此脚本时,请将sheet“公式”中单元格“D7”的下拉列表更改为Sucesso do Cliente
。这样,脚本就是运行.
function installedOnEdit(e) {
const range = e.range;
const sheet = range.getSheet();
if (sheet.getSheetName() != "Formulário" || range.getA1Notation() != "D7" || range.getValue() != "Sucesso do Cliente") return;
const url = "https://docs.google.com/spreadsheets/d/1BbuJfPPOSdbvHZ5b8xVTMndeydNfslDhPLm9ftL1pLU/edit?usp=sharing";
const html = `<script>window.open('${url}', '_blank');google.script.host.close();</script>`;
SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(html), "sample");
}
- 当您将 sheet“公式”中单元格“D7”的下拉列表更改为
Sucesso do Cliente
时,将打开一个对话框,[=12] 的 URL =] 由对话框的 Javascript 打开。
注:
- 在此示例脚本中,打开了您期望的 URL。但是,1st Spreadsheet无法关闭。
参考:
合并 onEdit 函数
此功能允许您使用 A1 的数据验证跳转到同一电子表格中的其他工作表,以及使用 B1 的数据验证跳转到其他电子表格的不同工作表
function onMyEdit(e) {
//e.source.toast("Entry");
//Logger.log(JSON.stringify(e));
const sheet = e.range.getSheet();
if (e.range.columnStart == 2 && e.range.rowStart == 1 && e.value ) {
const shts = {"Sheet1":"1553288907","Sheet2":"1273539231"};
//e.source.toast('Flag1');
const url = `https://docs.google.com/spreadsheets/d/11yNxdh/edit#gid=${shts[e.value]}?usp=sharing`;
//Logger.log(url);
const html = `<script>window.open('${url}', '_blank');google.script.host.close();</script>`;
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html), "sample");
}
if(e.range.rowStart == 1 && e.range.columnStart == 1 && e.value) {
e.source.getSheetByName(e.value).activate();
}
}
在我的示例中,我使用了列表 Sheet1、Sheet2 中的数据验证,您可以将 id 添加到 shts 对象并将其插入到 url 中,例如 ${shts[e.value] [id]}