vba以字符串作为种子随机获取

vba以字符串作为种子随机获取,vba,random,visio,random-seed,Vba,Random,Visio,Random Seed,我在MSVisio2010的VBA下工作(不是专家),我想根据字符串作为种子生成一个随机数(几个数字会更好) 我知道种子为负数的Rnd(seed)。然而,我不知道任何以字符串作为种子的随机生成器。可能是某种哈希函数,结果是一个数字 我想要一些像: print function("abc") 45 print function("xyz abc-5") 86 print function("abc") 45 在种子字符串中支持空格、符号和数字 我可能会看到一种解决方法,将每个字符转换为相应的as

我在MSVisio2010的VBA下工作(不是专家),我想根据字符串作为种子生成一个随机数(几个数字会更好)

我知道种子为负数的Rnd(seed)。然而,我不知道任何以字符串作为种子的随机生成器。可能是某种哈希函数,结果是一个数字

我想要一些像:

print function("abc")
45
print function("xyz abc-5")
86
print function("abc")
45
在种子字符串中支持空格、符号和数字


我可能会看到一种解决方法,将每个字符转换为相应的ascii数字,并以某种方式使用这个大数字作为Rnd的种子,但它确实感觉有些牵强。有人知道这样做的更奇特的方法吗?

结合了这些例子

致:

函数hash4(txt)
"照搬例子,
暗x等长
Dim mask、i、j、nC、crc作为整数
作为字符串的Dim c
crc=&HFFFF
对于nC=1到Len(txt)

j=Asc(Mid(txt,nC))'那么您想创建随机数吗?因为正如我所看到的,您试图将其用作散列,所以将输入字符串转换为某个常量值,而对于每个相同的字符串,您都希望获得相同的数字输出?我的目标是根据字符串参数(相同的字符串-->相同的颜色)设置某些形状的颜色。我已经找到了“随机数-->随机颜色”部分,我错过了“随机字符串-->随机数”部分。但我真的不明白你的问题,哈希是随机的,不是吗?看看,这里有一些创建哈希的示例“我的目标是根据字符串参数设置某些形状的颜色(相同字符串-->相同颜色)。”我的建议是学习并热爱Visio ShapeSheet,尤其是
Prop.
User.
字段。您可以使用这些创建各种视觉魔术,而无需触摸任何VBA。www.visguy.com是一个很好的早期入门网站,可以学习使Visio歌唱的各种知识。您还可以(通过VBA)自动设置/更改ShapeSheets。在模板中使用母版并在ShapeSheet中设置自动化的好处也值得考虑。这一切都可以归结为规划图表,当您修改图表时,前面的一点努力可以节省后面的很多努力。@Yvonnig,一定要针对您的具体案例进行研究。我刚刚尝试过,效果很好,非常感谢!在我的例子中,碰撞不是什么大问题:)
?hash4("Value 1")
31335 
?hash4("Value 2") 
31527