我一直在搜索和搜索,但找不到合适的方法。我使用多个变量和值来设置另一个单元格的值。
我使用这个公式来完成我现在需要的单元格" E4"在Sheet" Turn_Travel";
=LOOKUP(RAND(),INDEX(INDIRECT("Region"&VLOOKUP($B$4,RegionListTable,MATCH("Region #",RegionListHeader,0),FALSE)&$C$4&"Info"),0,MATCH("Perct.",INDIRECT($C$4&"Header"),0)),INDEX(INDIRECT("Region"&VLOOKUP($B$4,RegionListTable,MATCH("Region #",RegionListHeader,0),FALSE)&$C$4&"Info"),0,MATCH("Weather",INDIRECT($C$4&"Header"),0)))
现在我点击F9然后刷新我的工作表并生成一个新的随机数,它会改变我的结果。
我试图使用VBA生成随机数,然后让小区" E4"在Sheet" Turn_Travel"包含上面的公式和随机数的VBA变量。
这是我的尝试,但我收到了错误。有人可以找到我出错的地方吗?
Sub TravelRoll()
Randomize
Dim TheRoll As Long
TheRoll = ((1 - 0 + 1) * Rnd + 0)
Worksheets("Turn_Travel").Range("E4").Formula = "=LOOKUP("&TheRoll&",INDEX(INDIRECT(""Region""&VLOOKUP($B$4,RegionListTable,MATCH(""Region #"",RegionListHeader,0),FALSE)&$C$4&""Info""),0,MATCH(""Perct."",INDIRECT($C$4&""Header""),0)),INDEX(INDIRECT(""Region""&VLOOKUP($B$4,RegionListTable,MATCH(""Region #"",RegionListHeader,0),FALSE)&$C$4&""Info""),0,MATCH(""Weather"",INDIRECT($C$4&""Header""),0)))"
End Sub
答案 0 :(得分:2)
字符串连接运算符(&)之前和之后应该有空格。
此外,您需要将变量声明为double,以获得介于0和1之间的数字。如果您将其声明为long,则会得到0或1.
您可以使用Rnd
获得0到1之间的随机数。
如果你想要有限的小数,例如2位小数,你可以使用Format(Rnd, "#0.00")