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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 sheets中的鼠标选择中获取范围,并将其作为范围传递给应用程序脚本函数?_Google Apps Script - Fatal编程技术网

Google apps script 如何从google sheets中的鼠标选择中获取范围,并将其作为范围传递给应用程序脚本函数?

Google apps script 如何从google sheets中的鼠标选择中获取范围,并将其作为范围传递给应用程序脚本函数?,google-apps-script,Google Apps Script,理想情况下,除了电子表格本身之外,没有任何内容是通过URL硬编码的。 本着做事的精神 我想在GoogleSheets中选择一个gui,获取它的范围,将范围传递给一个函数来“做事情” 这是我到目前为止所拥有的 一个gui按钮来调用我的脚本 function onOpen() { var ui = SpreadsheetApp.getUi(); // Or DocumentApp or FormApp. ui.createMenu('Run Script Menu') .ad

理想情况下,除了电子表格本身之外,没有任何内容是通过URL硬编码的。 本着做事的精神

我想在GoogleSheets中选择一个gui,获取它的范围,将范围传递给一个函数来“做事情”

这是我到目前为止所拥有的

一个gui按钮来调用我的脚本

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Run Script Menu')
      .addItem('Run Test function', 'run')
      .addToUi();
}
用于捕获范围并将范围传递给另一个函数的函数

function run(){

    var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/myfullurl");
    var sheet = ss.getSheetByName("some sheet name")
    var range = sheet.getSelection().getActiveRange();
    var ar = sheet.setActiveRange(range);
    var rowData = getRowsData(sheet,ar,1);

 }
这里是函数的“工作”硬编码版本例如函数rowData按预期返回

function run(){

    var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/myfullurl");
    var sheet = ss.getSheetByName("some sheet name")
    var range = sheet.getRange("A3:M3");
    var ar = sheet.setActiveRange(range);
    var rowData = getRowsData(sheet,ar,1);

 }
这里是我尝试而不是硬编码的地方,只是我尝试传递给函数的范围

function run(){

    var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/myfullurl");
    var sheet = ss.getSheetByName("some sheet name")
    var range = sheet.getSelection().getActiveRange();
    var ar = sheet.setActiveRange(range);
    var rowData = getRowsData(sheet,ar,1);

 }
然后我得到了错误

Specified range must be part of the sheet
不确定它是否有用,但getRowsData是此函数的一部分
这两个函数都是google脚本。将它们复制到脚本编辑器中的.gs文件中,然后运行getSelectRange()。它将启动一个无模式对话框。选择范围并单击按钮,范围将显示在文本框中

function getSelectRange() {
  var html='<input type="text" id="selrg" /><br /><input type="button" value="Get Selected Range" onClick="getSelectedRange();" />';
  html+='<script>function getSelectedRange(){google.script.run.withSuccessHandler(function(rg){document.getElementById("selrg").value=rg;}).getSelRange();}</script>';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Get Select Range');
}

function getSelRange() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getActiveRange();
  return rg.getA1Notation();
}
函数getSelectRange(){ var html='
'; html+=“函数getSelectedRange(){google.script.run.withSuccessHandler(函数(rg){document.getElementById(“selrg”).value=rg;}).getSelRange();}”; var userInterface=HtmlService.createHtmlOutput(html); SpreadsheetApp.getUi().showModelessDialog(用户界面“获取选择范围”); } 函数getSelRange(){ var ss=SpreadsheetApp.getActive(); var sh=ss.getActiveSheet(); var rg=sh.getActiveRange(); 返回rg.getA1Notation(); }
这两个函数都是google脚本。将它们复制到脚本编辑器中的.gs文件中,然后运行getSelectRange()。它将启动一个无模式对话框。选择范围并单击按钮,范围将显示在文本框中

function getSelectRange() {
  var html='<input type="text" id="selrg" /><br /><input type="button" value="Get Selected Range" onClick="getSelectedRange();" />';
  html+='<script>function getSelectedRange(){google.script.run.withSuccessHandler(function(rg){document.getElementById("selrg").value=rg;}).getSelRange();}</script>';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Get Select Range');
}

function getSelRange() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getActiveRange();
  return rg.getA1Notation();
}
函数getSelectRange(){ var html='
'; html+=“函数getSelectedRange(){google.script.run.withSuccessHandler(函数(rg){document.getElementById(“selrg”).value=rg;}).getSelRange();}”; var userInterface=HtmlService.createHtmlOutput(html); SpreadsheetApp.getUi().showModelessDialog(用户界面“获取选择范围”); } 函数getSelRange(){ var ss=SpreadsheetApp.getActive(); var sh=ss.getActiveSheet(); var rg=sh.getActiveRange(); 返回rg.getA1Notation(); }
使用无模式软件很容易做到这一点dialog@Cooper对不起,我不懂,请举个例子好吗?这很容易用无模式实现dialog@Cooper对不起,我不懂。请举个例子好吗?