我正在创建一个电子表格,当我按下按钮时,它可以自动从特定列中选择随机单元格数据。但是,我无法弄清楚脚本。
感谢一些朋友,我尝试了一些涉及使用附加组件的变体,但理想情况下,我不想使用这样的东西,因为如果人们想在没有插件的情况下制作副本,它需要可用。
我要做的是单击一个特定的按钮,然后相邻的单元格显示列表中给定数据集中的随机值。
我有两张纸。"界面"和"引擎盖下" - 不言自明,界面有按钮,引擎盖下包含数据。
这是我在网上其他地方找到的一些代码,试图以此为基础。
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(界面(中。
虚拟数据:https://docs.google.com/spreadsheets/d/1HMmT_dx2_zeDKozEeDElYLaZutc4ruSwjjvVjyGg-Ls/edit?usp=sharing
任何人都可以指导我如何做到这一点吗?
试试这个:
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);
}
我认为您可以找出各种按钮的其余功能。 您需要做的就是给它一个列,在"引擎盖下"中搜索,并在"界面"中输入答案的单元格