Как открыть веб-сайт из ячейки в листах Google, нажав кнопку? - PullRequest
0 голосов
/ 25 сентября 2018

Я делаю электронную таблицу в листах 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 (){
...
};

Возможно, я делаю что-то совершенно не так.Есть ли кто-нибудь, кто знает, как открыть ссылку в ячейке с помощью макросов?Или как использовать "Sub ... End Sub" в листе Google?

Спасибо

1 Ответ

0 голосов
/ 16 мая 2019

Вы можете вставить приведенный ниже код в редактор сценариев и пропустить 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 ..." );
}

Автор решения указывает, что вы не сможете напрямую запускать этот код в редакторе сценариев, и вам нужно будет назначить сценарий чертежу или кнопке.

Скрипт Google Apps для открытия URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...