【发布时间】:2018-05-20 01:57:53
【问题描述】:
我正在寻找一个小型随机字符串生成器项目的输入。
我正在尝试创建一个随机字符串生成器,它将三个单词放在一起,然后我可以将我喜欢的字符串保存到另一张纸上。
我正在使用一个基本脚本将 RANDBETWEEN 公式分配给 3 个特定单元格,这非常适合生成字符串,但它似乎会随着脚本中的每个附加步骤不断重新计算。我想运行一个函数,然后如果我喜欢这个字符串,我会运行另一个函数来存储字符串。但是,当我尝试它已经重新计算了 RANDBETWEEN 公式时,它会保存一些完全不同的东西。
我在这里有一个示例表:
https://docs.google.com/spreadsheets/d/1TWziyjjLQJJApkHCqrLzNGMFU0sf-vNEOOSatuhHURo/edit?usp=sharing
这是我分别用于“Go”和“Save”按钮的代码:
function generateString() {
var ss = SpreadsheetApp.openById('1b9rP39sgZDOZqu7AmZhOxX9J8CMukmUw7NPY3Qzuq78');
var sheet = ss.getSheetByName('Randomizer');
var cell = sheet.getRange('D4');
var cell2 = sheet.getRange('E4');
var cell3 = sheet.getRange('F4');
cell.setValue('=INDEX(A:A,RANDBETWEEN(1,counta(A:A)))');
cell2.setValue('=INDEX(A:A,RANDBETWEEN(1,counta(A:A)))');
cell3.setValue('=INDEX(A:A,RANDBETWEEN(1,counta(A:A)))');
var cell4 = sheet.getRange('P4');
cell4.copyTo (sheet.getRange ('P5'), {contentsOnly: true}); //an attempt to paste values to record the random string
}
function saveString() {
var ss = SpreadsheetApp.openById('1b9rP39sgZDOZqu7AmZhOxX9J8CMukmUw7NPY3Qzuq78');
var sheet = ss.getSheetByName('Randomizer'); //replace with source Sheet tab name
var range = sheet.getRange('P4'); //assign the range you want to copy
var data = range.getValues();
var tss = SpreadsheetApp.openById('1b9rP39sgZDOZqu7AmZhOxX9J8CMukmUw7NPY3Qzuq78');
var tsheet = tss.getSheetByName('Saved Strings'); //replace with destination Sheet tab name
tsheet.getRange(tsheet.getLastRow()+1, 1, 1, 1).setValues(data);
}
如果有人对如何使其正常工作有一些想法,请告诉我。谢谢!
【问题讨论】:
标签: google-apps-script google-sheets formulas