我到处搜索,没有找到适用于Google脚本API的任何解决方案。
背景:尝试使用(1)随机的六位数字填充1行x 4列数组,该数字在第1列中尚不存在(2)今天的日期(3)用户输入的商店编号(4)用户输入的盒子数。
在此脚本中,我们首先打开一个对话框,要求用户输入商店号和盒子数。此(和其他)信息将填充在最后一行。
我在这里有两个问题。
问题1: 我不知道一种方法可以对照A列中已有的数据检查生成的随机数。我需要能够创建唯一的随机数。
问题2: 在使用带有随机数的占位符的脚本运行脚本时,我收到一条错误消息“无法将数组转换为object [] []”-我不确定在这里哪里出错了。
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Create New Exception Number')
.addItem('Add New Exception Number', 'showPrompt')
.addToUi();
}
function showPrompt() {
var ui = SpreadsheetApp.getUi();
var storeNumPrompt = ui.prompt( //receive input for Column C data
'Please enter the store number.',
ui.ButtonSet.OK_CANCEL);
var numBoxesPrompt = ui.prompt( //receive input for Column D data
'Please enter the number of boxes.',
ui.ButtonSet.OK_CANCEL);
var randomNum = Math.floor(Math.random()*999999); //random number for Column A, that does not already exist in Column A
var today = Utilities.formatDate(new Date(), "PST", "dd/MM/yyyy"); //Today's date to go in Column B
var storeNum = storeNumPrompt.getResponseText(); //value based on user input
var numBoxes = numBoxesPrompt.getResponseText(); //value based on user input
var lastRow = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Exception Numbers').getLastRow()+1; //determine what is the last row
var values = [randomNum,today,storeNum,numBoxes];
var newException = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Exception Numbers').getRange(lastRow,1,1,4); //gets the range of the last row, 4 columns wide
newException.setRange(values); //sets the values as previously specified in the last row.
}
答案 0 :(得分:0)
创建大量的“随机”数字,从该数字集中删除重复的数字,每次需要另一个时选择另一个。