首页 > 解决方案 > 需要帮助在 Google 表格中创建随机数生成按钮

问题描述

我想使用按钮在同一张纸上生成一个介于 1 和单元格“a2”中的值之间的随机数。这可能吗?

function onOpen() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
  var entries = [ {name:"Roll Dice",functionName:"rollDice"} ]; 
  sheet.addMenu("Script", entries); }; 

function rollDice() {
 var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 var sheet = ss.getSheetByName("Testing"); 
 var cell = sheet.getRange("a4"); 
 var range = sheet.getRange("a2"); 
 cell.setValue(Math.floor((Math.random()*6)+1) ); };

标签: javascriptbuttongoogle-apps-scriptgoogle-sheetsrandom

解决方案


解释:

  • 以下脚本将获取单元格的值A2并生成integer介于1和单元格值之间的数字A2并将其粘贴到单元格B2中。如果需要,修改代码中的最后一部分。如果您想要相同范围之间的浮点数,请注释第一rn行并注释掉第二行。

  • 我们将此脚本附加到图片按钮,以便您可以从UI. 对在特定时间范围内按下按钮的次数保持温和,因为它需要一些时间来处理您的请求。

  • 我们使用的函数是Math.random()


解决方案:

您可以创建附加到以下脚本的图像按钮:

function button() {
  
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getActiveSheet();
  const rf = sh.getRange('A2').getValue();
  const rn = Math.floor(Math.random() * rf) + 1;
//const rn = Math.random() * rf + 1; //if you want a float number
  sh.getRange('B2').setValue(rn);
  SpreadsheetApp.flush();
}

指示:

在工作表中复制您选择的图像,然后按照以下 gif 中的说明进行操作:

例子


推荐阅读