我正在寻找Microsoft Excel 2013的加载项,它可以生成任意字符(数百万)的真正随机字符串,尤其是(A-Z)(a-z)(0-9)。请告诉我在Excel 2013中可以使用的安装加载项或命令来执行此任务。 RAND和RANDBETWEEN函数返回bigints,而不是数字(在这种情况下是字符串),所以它们可能不起作用。感谢。
答案 0 :(得分:2)
您可以编写自己的功能。它不会真正随机,甚至加密安全,但它可能是有用的。类似的东西:
Function RandChars(n As Long, Optional alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") As String
Dim chars() As String
Dim i As Long, k As Long
k = Len(alphabet)
ReDim chars(1 To n)
With Application.WorksheetFunction
For i = 1 To n
chars(i) = Mid(alphabet, .RandBetween(1, k), 1)
Next i
End With
RandChars = Join(chars, "")
End Function
如果将其输入标准VBA代码模块并输入公式
=RandChars(10)
范围内的 A1:A10
您会得到类似的内容:
如果您需要加密安全的内容,则需要使用加密安全的PRNG替换RandBetween
。
答案 1 :(得分:0)
=ROUND(RAND(),0)
随机生成0或1。在8个细胞中做到这一点。将单个8个单元格连接成一个单独的字符串。做=BIN2DEC()
就可以了。这会给你一个0到255之间的随机数。=RANDBETWEEN(0,255)
做同样的事情。
这对你有帮助吗?只需弄清楚你想要多少位数,然后生成要分配的randum数字。
答案 2 :(得分:0)
下面的代码用随机数填充整个电子表格。
function myFunction() {
function randnumber() {
var sheet = SpreadsheetApp.getActive().getSheetByName("sheet1");
var range = sheet.getRange("A1:Z10");
for (var x = 1; x <= range.getWidth(); x++) {
for (var y = 1; y <= range.getHeight(); y++) {
var number = Math.floor(Math.random() * 8999999999) + 1000000000;
range.getCell(y, x).setValue(number);
}
}
var sheet = SpreadsheetApp.getActive().getSheetByName("sheet1");
var entries = [{
name : "Numbers: 1-9",
functionName : "numbers19"
}];
}