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
Random 用于在按下按钮时从列表中选择随机数据的脚本_Random_Google Apps Script_Google Sheets_Google Apps Script Editor - Fatal编程技术网

Random 用于在按下按钮时从列表中选择随机数据的脚本

Random 用于在按下按钮时从列表中选择随机数据的脚本,random,google-apps-script,google-sheets,google-apps-script-editor,Random,Google Apps Script,Google Sheets,Google Apps Script Editor,我正在创建一个电子表格,当我按下按钮时,它可以自动从特定列中选择随机单元格数据。但是,我无法理解脚本 多亏了一些朋友,我尝试了一些涉及使用附加组件的变体,但理想情况下,我不想使用类似的东西,因为如果人们想在没有附加组件的情况下制作副本,它需要可用 我想做的是单击一个特定的按钮,然后相邻的单元格显示列表中给定数据集的随机值 我有两张床单。“界面”和“引擎盖下”-非常不言自明,界面有按钮,引擎盖下包含数据 下面是我在网上其他地方找到的一些代码,试图以此为基础 function random()

我正在创建一个电子表格,当我按下按钮时,它可以自动从特定列中选择随机单元格数据。但是,我无法理解脚本

多亏了一些朋友,我尝试了一些涉及使用附加组件的变体,但理想情况下,我不想使用类似的东西,因为如果人们想在没有附加组件的情况下制作副本,它需要可用

我想做的是单击一个特定的按钮,然后相邻的单元格显示列表中给定数据集的随机值

我有两张床单。“界面”和“引擎盖下”-非常不言自明,界面有按钮,引擎盖下包含数据

下面是我在网上其他地方找到的一些代码,试图以此为基础

  function random() {
      var ss=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
      var val=ss.getRange("A1").getValue()
      var clr =ss.getRange("A1").clearContent()
      ss.getRange("A1").setValue(val)
    }
举个例子-

A2-A33是我们的数据集列表(在发动机罩表下)

我画了一个按钮,我想随机选择出现在单元格D17(界面)

虚拟数据:

有人能教我怎么做吗?

试试这个:

function getRandomValue(searchColumn,resultCellRow,resultCellColumn) {
  var ss=SpreadsheetApp.getActive();
  var dsh=ss.getSheetByName('Interface');
  var ssh=ss.getSheetByName('UnderTheHood')
  var rg=ssh.getRange(2,searchColumn,ssh.getLastRow()-1,1);
  var vA=rg.getValues().map(function(r){return r[0]});
  while(vA[vA.length-1].length==0) {
    vA.splice(vA.length-1,1);
  }
  dsh.getRange(resultCellRow,resultCellColumn).setValue( vA[Math.floor(Math.random()*vA.length)]);
}

function generateCoach() {
  getRandomValue(10,3,4)
}

function coachBackStory() {
  getRandomValue(11,5,4)
}

function contracts() {
  getRandomValue(7,5,8);
}

我想您可以计算出各种按钮的其余功能。你所需要做的就是给它一个在“UnderTheHood”中搜索的列,给它一个在“Interface”中搜索答案的单元格。

我不知道你所说的随机选择是什么意思。您想要随机行、随机列还是随机单元格。你想做什么?如果我说得不够清楚,我道歉。我在单元格A2-A33中有一个单独的表(表a)(例如)中的数据列表。在工作表B中,我有一个按钮,当我按下该按钮时,我希望前面列表中的单元格D17(工作表B)中会出现一个随机选择。是的,我在查看电子表格后最终找到了它。我非常感谢您在这里帮助我,不幸的是,我收到了这个错误“TypeError:无法调用null的方法“getRange”这是我目前正在使用的工作表(以防万一会有什么不同)您是否可以在代码中向我解释我在哪里选择数据范围以及在哪里选择输出单元格?当我意识到我需要获得唯一的列高度而不是使用sheet.getLastRow()时,我刚刚做了一些更改。我是从你问题中的表格开始工作的,你基本上只需要告诉getRandomValue()函数要在“UnderTheHood”中搜索的列,以及要在“Interface”中搜索的行和列。谢谢@cooper,我现在就给你,看看会发生什么!我只是在学习这些东西,我承担了一项超出我能力范围的任务。在你的新工作表上,
函数generateCach(){getRandomValue(10,17,2);}
并将“UnderTheHood”改为“UTH”