我正在使用Google表格制作电子表格,其中有多个指向预填写的Google表单的链接https://docs.google.com/forms 。我在电子表格中添加了一个“按钮”,当您单击它时,它会导航到包含指向预填写表格的正确链接的单元格(当前活动单元格右边的16个单元格),看起来像;
function GoToSite(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// Returns the active cell
var cell = sheet.getActiveCell();
cell.offset(0,16).activate();
};
但是,我无法使电子表格打开此链接。我知道在一个普通的excel文件中,您将使用类似于以下内容的文件:
Sub openwebpage ()
...
End Sub
您将使用“ FollowHyperlink” /“创建IE对象” /“.Navigate”甚至“ Sendkeys”(如果在选择了包含预填充链接的单元格时输入alt + enter,则会打开网页)。但是所有这些选项都与sub .. end sub结合使用,我无法管理宏来识别这一点。似乎仅适用于
function example (){
...
};
也许我做错了什么。是否有人会知道如何使用宏在单元格中打开链接?或者如何在Google工作表中使用“ Sub ... End Sub”?
谢谢
答案 0 :(得分:0)
您可以将以下代码粘贴到脚本编辑器中,并通过url
作为其参数。
/**
* Open a URL in a new tab.
*/
function openUrl( url ){
var html = HtmlService.createHtmlOutput('<html><script>'
+'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};'
+'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";'
+'if(document.createEvent){'
+' var event=document.createEvent("MouseEvents");'
+' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}'
+' event.initEvent("click",true,true); a.dispatchEvent(event);'
+'}else{ a.click() }'
+'close();'
+'</script>'
// Offer URL as clickable link in case above code fails.
+'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>'
+'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>'
+'</html>')
.setWidth( 90 ).setHeight( 1 );
SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." );
}
该解决方案的作者指出,您将无法直接在“脚本编辑器”中运行此代码,需要将脚本分配给图形或按钮。